Příspěvky uživatele


< návrat zpět

elninoslov napsal/a:

Cez druhú inštanciu Excelu to pôjde isto, len to pár sekúnd trvá. Nedešifroval som, čo v tom makre robíte (neznáme premenné), tak som si podobné vymyslel.Příloha: 39792_open-v-beforeclose.zip (21kB, staženo 3x)


Super, toto je přesně ono. Mírně upraveno do mých podmínek, ale to je díky mnou nezaslání celého kódu pochopitelné...
Smekám před "elninoslov".
Díky moc, ušetřeno přepracování, dle mých původních úvah...

Re: [xlnc]

Jasně, že ne, ty jsem tam dodělal, když to začalo chybovat, abych věděl, jestli to něco učiní či nikoli a co a jak se mění. Při zavření se ztratí BreakPointy, tak proto STOPky.
"DoEvets" taky bylo doplněno, když už jsem nevěděl "kudy kam", jestli to někde nespí... nepomohlo, jak jsem předpokládal.
Nepomohlo ani pokus přesunutí volání do Before_Save. Stále stejné.

V "tlačítku pro ukončení" je závěrečný kód:

...
Text = Text & "Přejete si založit další?"
i = MsgBox(Text, vbQuestion + vbYesNo, "Další objednávka")
If i = vbNo Then
ActiveWorkbook.Save 'Uloží
Text = "Přejete si uzavřít Objednávky?"
j = MsgBox(Text, vbQuestion + vbYesNo, "Konec")
If j = vbYes Then ThisWorkbook.Close 'Zavře "Objednávky"

Exit Sub

Tak to nepomohlo. Přesunul jsem do celou rutinu do Modulu. Zavolání rutiny OK, ale stejný výsledek. Řádek s "Open" je ignorován... Ani CSV soubor neotevře (zkoušeno), prostě nic.

Nenapadá někoho jednodušší řešení než mě?
Mě jen nechat otevřený pomocný soubor po celou dobu práce a na konec pouze aktualizovat data a uzavřít. Nezkoušeno, ale teoreticky by to jít mohlo.

anyman napsal/a:

Chování zcela běžné. Zvláště po příkazu "Close" VBA neočekává plnění některých dalších příkazů.
Řeším tak, že rutinu, která má předcházet zavření, dám do samostatné procedury a z "BeforeClose" ji pak volám.


Dík, jdu to zkusit.

Ahoj všem. Mám jeden dotaz.
Při uzavírání excelového sešitu (2007) vyvstal požadavek na ukládání několika údajů do jiného sešitu, ze kterého tyto údaje většinou v jiném čase (nelze však vyloučit i současné použití, proto řešení přes pomocný sešit) čerpá jiný sešit (a mnohdy i uživatel). Vím, je to spíš na databázi, ale s tou ne každý pracuje...
Nicméně k jádru pudla. Napsal jsem si makro, kdy před uzavíráním (WB_BeforeClose) se "pomocný" sešit otevře, překopírují se příslušná data, uzavře se sešit a nahranými daty a následně se uzavře sešit původní. Pokud uzavírám sešit "křížkem", tak vše proběhne korektně. Potud je vše OK.
Měl jsem, ale napsánu rutinu v původním sešitu, kdy se uzavíral sešit tlačítkem. A zde nastává nějaká anomálie (alespoň pro mě). Do příslušné procedury se před uzavírám sešitu přesunu, ale v ní je příkaz k otevření jiného sešitu ignorován - k otevření nedojde... Následně pak při pokusu o zápis dat, skončí logicky makro chybou (9).
Neví někdo jak z toho ven?
Dík za jakýkoliv typ...

Přihládám výpis makra:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'uložit změny v tabulce SeznamObj.xlsx
Dim Cislo As Long
Cesta = ThisWorkbook.Path & "\" & adrCis
Nazev = Cesta & "\" & sesitSeznObj
Stop
Workbooks.Open Filename:=Nazev 'otevřít soubor "SeznamObj"
DoEvents
Workbooks(sesitObj).Activate 'vybrat soubor "Objednavky"
Worksheets("2018").Select
Cislo = Worksheets("2018").Cells(Rows.Count, 1).End(xlUp).Row
Text = "A2:X" & Cislo
Stop
Workbooks(sesitSeznObj).Activate
Call OdemkniList("SeznamObj")
Workbooks(sesitObj).Worksheets("2018").Range(Text).Copy 'vybrat
Workbooks(sesitSeznObj).Worksheets("SeznamObj").Range("A2").PasteSpecial xlPasteValues 'kopie z objednávek
Call ZamkniList("SeznamObj")
Workbooks(sesitSeznObj).Close SaveChanges:=True 'zavřít soubor s uložením změn
End Sub


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