< návrat zpět

MS Excel


Téma: Skrytý list - volání pomocí VBA rss

Zaslal/a 9.4.2012 23:46

Zdravím,

Mám vytvořené makra, které se odkazují na několik listů pomocí "Sheets("LIST1").Select. Listy potřebuji skrýt (hide). Jakmile listy skryji, VBA mi hlásí chybu nebo nenalezne listy. Nevíte jak se volají ve VBA listy, které jsou skryté?

Děkuju
Zdeněk

Zaslat odpověď >

#007954
avatar
Při opětovném spuštění makra to hází chybu právě proto, že už jsou listy skryté a tudíž nelze využít SELECT... Aby mohly být vybrány, musí se nejdříve zobrazit:

Sheets("List1").Visible = 1citovat
#007972
avatar
Děkuju, zabralo to:-) Makro funguje.

Co mi ale vadí je, že se list objeví na chvilku a to i když použji na začátku makra Sheets("List1").Visible = 1 a na konci Sheets("List1").Visible = 0, list problikne na pozadí.

Dá se to nějak potlačit?citovat
#007977
Stalker
Na začátek makra
Application.ScreenUpdating = False
a na konec
Application.ScreenUpdating = Truecitovat
#007982
avatar
Díky moc, zabralo to! 1citovat
#037870
avatar
čus hele myslíte že byste mi mohli poslat prosím to VBA jak má být napsáno snažím se tam nějak za implementovat ten Váš kód a hází mi to chyby :/

Díky moc :)citovat
#037872
elninoslov
Na to, čo potrebujete s listom robiť, ho potrebujete zobrazený (tlač ???) ? Ak sa potrebujete odkazovať na Range() či Cells(), tak to jednoducho spravte "bodkovou notáciou":
With Sheets("List1")
'Môj kód
.Range("A1:C100").ClearContents
.Cells(1,1).Value = 3.1415
... 'podobné odkazy začínajte s bodkou
End With

Čo Vám hádže chyby, a aké ?
Application.ScreenUpdating ? Tomu sa mi nechce veriť.
Sheets("List1").Visible = 0 ? Asi iba ak je list zamknutý, alebo posledný zobrazený.
Skúste uviesť prílohu, ľahšie sa Vám dostane presnej rady.citovat
#037873
avatar
Problém se Selectem objektů na skrytém listu vede na všeobecně zavedenou pověru, že nelze pracovat se skrytým listem. Jediné, co nelze, je ten Select, se kterým s takovou oblibou pracuje makro kamera. Pravda je, že oslovovat přímo oblasti buněk nebo objekty na skrytém listu včetně jejich změn je bez problémů možné.
Druhou pověrou je, že Application.ScreenUpdating = True je nutné použít vždy před koncem procedury s vypnutým zobrazováním změn. Konec procedury to provede automaticky sám. Vynucené obnovení je naopak často zdrojem zbytečného flickeru.citovat
icon #037878
eLCHa
@vovka
Ad ScreenUpdating
Upřesním: Ne na konci procedury, ale po ukončení běhu kódu.

A jako u všeho i zde platí situace, kde se to nestane (neřeknu přesně, ale je velmi nepříjemné, když pak klikáte a nic se neděje). Takže je pak nutno zapnout ručně (restart excelu nebo Immediate)

Takže raději to tam vždy dávám.citovat
#037892
avatar
Budu se opakovat, ale pár poznámek k Selectu:
https://proexcel.cz/activate-select-zlozvyk-ve-vba/

... a k Application.Update (ke konci článku):
https://proexcel.cz/statusbar-progressbar-dalsi-moznosti-zobrazeni-prubehu-operace/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