< návrat zpět

MS Excel


Téma: BeforeSave jde do smyčky rss

Zaslal/a 26.6.2015 13:17

Ahoj,
narazil jsem na následující problém. Zjednodušeně - potřebuju:
1) skrýt list 1
2) uložit sešit
3) odkrýt list 1

Řeším to v proceuře Workbook_BeforeSave. Při uložení CTRL+S funguje OK.
Ale pokud chci zavřít Excel a mám otevřený i jiný sešit, tak se procedura Workbook_BeforeSave opakuje stále dokola, pokud při výzvě zda chci uložit, odpovím Ano.
Neznáte někdo řešení?

Příloha: zip25707_beforesave.xlsm.zip (12kB, staženo 23x)
Zaslat odpověď >

#025708
avatar
skusal som to u seba a umna sa to nezacyklilo
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(1).Visible = False
Application.EnableEvents = False
Application.DisplayAlerts = False

ThisWorkbook.Save

Application.DisplayAlerts = True
Application.EnableEvents = True
Sheets(1).Visible = True

Cancel = True
ThisWorkbook.Saved = True
End Sub
citovat
#025709
avatar
A máš u toho otevřený ještě jiný sešit?
Zkoušel jsi zavřít Excel a zvolit, že chceš uložit?
Jakou verzi Excelu máš?citovat
#025711
avatar
pouzivam office 2010

inac:
Application.DisplayAlerts = False

zabrani ukazovanie hlasky

.... ale aj tak to nic nemeni na fakte ze sa to nezacykli u mna :)citovat
#025712
avatar
To je zajímavé - kolegovi v Excelu 2007 se to cyklí,
mně v 2013 se to cyklí, že by se 2010 chovala jinak?

Nejsem si jitý, jestli si rozumíme.
Je opravdu důležité, jestli máš u toho otevřený ještě jiný sešit.
Problém nastane až při pokusu o uzavření, ne u samotného ukládání.

Jo, display alerts samozřejmě znát, ale zde to nepomůže.citovat
#025713
avatar
uz som to aj ja zacyklil :)

skuste to takto zapisat:
Option Explicit

Private aCheck As Boolean

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If aCheck = False Then
aCheck = True
Sheets(1).Visible = False
ThisWorkbook.Save
Sheets(1).Visible = True

Cancel = True
ThisWorkbook.Saved = True
End If
End Sub
citovat
#025717
avatar
Hm, teď se to už necyklí, ale hlášku "uložit" při uzavírání musím odklepávat dvakrát...citovat
#025718
avatar
skuste to takto zapisat:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Sheets(1).Visible = True
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(1).Visible = False
End Sub


dnes to nejak nemysli :)))citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje