< návrat zpět

MS Excel


Téma: Přepínání oken mezi dvěma otevřenými sešity rss

Zaslal/a 20.3.2021 19:35

StalkerAhoj, přicházím si pro radu, protože už mi dochází nápady i trpělivost.
Mám vba kód který přenáší hodnoty mezi dvěma sešity. Pokud je cílový sešit uzavřen, dojde k jeho otevření (přes CreateObject) na pozadí, přenosu hodnot a opětovnému uzavření s uložením (WbKCil.Close True). To vše funguje bez problému.

Ten mi nastává v případě, že by byl cílový soubor otevřen uživatelem před spuštěním makra.
Přiřadím sešit do proměnné, provedu přenos hodnot a pouze uložím (WbkCil.Save), chci nechat soubor otevřený. Přesně v tomto kroku dojde k přepnutí mezi jednotlivými okny excelu a tedy problikávání obrazovky.

Přenos hodnot jako takový funguje, ale ta diskotéka mě irituje, bohužel Application.ScreenUpdating = False nic neřeší.

Máte někdo nápad?

Zaslat odpověď >

#050181
elninoslov
Tak namiesto CreateObject najskôr otestujte, či sa v kolekcii otvorených workbooks už nenachádza Váš zošit, ak áno, iba ho priraďte do premennej, ak nie, tak ho potom prežeňte cez CreateObject. Poznamenajte si do pomocnej premennej boolean či ste ho otvárali (true) alebo bol otvorený (false). Na základe toho na konci procedúry vykonáte uloženie, alebo uloženie a zatvorenie. Príp. priložte prílohu, nech to testneme...citovat
#050182
Stalker
Ahoj, diky za reakci.
Přesně takhle to mám napsaný a funkční. Na konci procedury poté oba sešity ukládám.

ThisWorkbook.Save
If CilZavreny = True Then
WbCil.Close True
Else
WbCil.Save
End If

Problém je "pouze z estetického" hlediska pokud dojde na řádek WbCil.Save Přepne se ze zdrojového na cílový soubor a zase zpět.citovat
#050186
elninoslov
Tak bohužiaľ, nič nezaberá. Podobný problém som našiel aj na nete, no riešenie nie. Zaujímavé je, že ak makro spustím ručne vo VBA, tak nepreblikne, ale akonáhle ho pustím z tlačítka listu tak preblikne. Presne na tom Save.
Inak GetObject(súbor) je rýchlejšie ako CreateObject("Excel.Application"), žiaľ súbor zostane po uložení neviditeľný a nejde viditeľne otvoriť užívateľom (otvorí sa následne už len skryto). Obísť sa to dá iba nastavením ...Windows(1).Visible=True pred uložením, čo Vás vráti k počiatku prebliknutia 5
Takže celé na prd...citovat
#050192
Stalker
Přesně 6
Tak to vypadá, že se budu muset smířit s diskotékou. 7

Jediné na co sem přišel je, pokud by se makro spouštělo opakovaně, cílový soubor minimalizovat. Při prvním spuštění "problikne" -> animace minimalizace (nejspíš záležitost OS), při následném spuštění je klid.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