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áš?
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í?
1) Zamknout strukturu sešitu nemůžu, protože prostě potřebuju mít možnost přidávat listy (např. kopírováním z jiného sešitu), odstraňovat některé listy apod.
2) Přejmenování listu mi nevadí, v makrech se odkazuju pomocí CodeName listu.
3) Smazání obsahu listu řeší zámek listu - uživatel ho nesmaže.
4) Když zakážu uložení sešitu, tak uživatel může přijít o mnoho úprav, které mezitím provedl - takže ani toto řešení není pro mě vhodné:-(
Ale díky za snahu...
Nebo má někdo jiný nápad?
Je to vytvořeno i spouštěno v Excelu 2013
- ukázka v příloze.
Hm, Cancel tam není:-(
Řeším ten samý problém - nedovolit uživateli smazat určité listy. Jdu tímto směrem:
1) Odchytím událost na úrovni listu Worksheet_BeforeDelete()
2) Oznámím uživateli, že je zakázáno mazat tento list
3) Uložím sešit ThisWorkbook.Save (ještě obsahuje mazaný list)
4) Zavřu sešit ThisWorkbook (s oním listem)
FUNGUJE TO, list není odstraněn, ALE Excel při tom spadne (hláška Excel přestal pracovat) i s případnými ostatními otevřenými sešity.
Měl by někdo nějaký tip, jak to udělat, aby se Excel korektně ukončil?
Funguje:-) Díky moc!
Ahoj, nevíte někdo, jak po otevření nemodálního formuláře přenést focus zpátky na sešit? Tj. aby nemodální formulář zůstal zobrazen, ale aktivní aby bylo okno Excelu. Díky předem za tip.
Ahoj, potřeboval bych poradit od zkušenějších:
Když se vykoná makro, disabluje se funkce Excelu "UnDo". To chápu, tak to prostě je.
Nyní mám vlastní místní nabídku v kontext. menu (pravé tlač. myši), kde mám kromě vlastních položek i defaultní příkazy, jako např. vyjmout, kopírovat, vložit, formát buněk - například takto:
Set MyMenu = CommandBars.Add(Name:="MojeMenu1", Position:=msoBarPopup, Temporary:=True)
MyMenu.Controls.Add Type:=msoControlButton, ID:=855, before:=14 ' Formát buněk
Funguje to, ale po provedení se disabluje UnDo, i přesto, že se neprovedlo moje makro, ale standardní příkaz. Nevíte jak to udělat, aby v tomto případě zůstalo UnDo aktivní?
Dejte na konec beforeright... jestě jeden
activesheet.select
POMOHLO TO. DÍKY!!
Ano, text je zapsaný v původním listu, ne cílovém.
Takže to vypadá na chybu Excelu
Ostatní také problém nepozorují? Jestli ne, pak by mohl být problém na mé instalaci Excelu.
V tom co jsem přiložil, se to u mě stále chová divně.
EDIT: Mám Excel 2013.
EDIT: ještě něco: Po přechodu na jiný list pomocí místní nabídky (kontext. menu) nejde ani zavřít sešit křížkem vpravo nahoře ani ALT+F4.
Protože vás tu nechci obtěžovat vyjmenováváním důvodů, proč to tak dělám, ani celou svojí aplikací, kde byste to pochopili.
Jako dotaz pokládám jen fundamentální problém. Důvod použití maker nechte prosím na mě:-) Díky.
Jasně. Chvíli mi trvalo vypreparovat to nepodstatné...
Ukázkový soubor přiložen.
Když se pak přejde na jiný list ručně (bez makra), tak se to spraví.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.