2.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Excel/VBA-Profis,

könnte mir jemand sagen, wie man per VBA auf unsichtbare Arbeitsblätter zugreifen kann, ohne diese im VBA-Code wieder auf "sichtbar" stellen zu müssen.

Leider bekomme ich immer eine Fehlermeldung, wenn ich per "Select"-Befehl auf unsichtbare Arbeitsblätter zugreifen will ... :L
Welchen Befehlscode müsste man eingeben, um das Problem zu lösen?

Danke für jede Hilfe!

4 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Moni,

arbeite ohne select.
Excel ist ein vielseitiges Programm und man kann viele Probleme damit lösen. Jede positive Seite hat aber auch negative Aspekte - einer davon ist im Makrorecorder enthalten.
Die Bücher, die es zu Excel VBA gibt, erklären viele Funktionen, aber ich habe bisher nur in einem gelesen, dass der vom Makrorecorder aufgezeichnete Code bereinigt werden sollte.
Der Makrorecorder zeichnet alle Aktionen auf, u. a. auch das Auswählen einer Zelle oder eines eingebetteten Objektes (Bild, Diagramm, Zeichnungsobjekt usw.) dabei wird generell Select und Activate aufgezeichnet. Diese Befehle sind in VBA zu 99,9% nicht notwendig. Sie lassen den Bildschirm flackern und senken die Geschwindigkeit bei der Ausführung des Codes. Man sollte also schon von Beginn an bei der Programmierung darauf achten, solche Befehle zu vermeiden. Meine Erfahrung mit dem Vorsatz: Das mache ich später ist, man schreibt das Programm später meist komplett neu. Also kostest es nicht nur Rechnerzeit sondern auch Deine Zeit und ist Dir Deine Zeit so wenig Wert?
Zum Vergleich mit und ohne Select schau Dir auch mal diese Beispielarbeitsmappe an: href="http://hajo-excel.de/chCounter3/getfile.php?id=61" Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.

Gruß Hajo
0 Punkte
Beantwortet von
Hallo nochmal,

schonmal vielen Dank so weit!
Jedoch kann ich als Anfänger nicht so viel aus den Beispielen auslesen. Wie würdest du z. B. den Befehl Range("A1").Select umgehen?
Was könnte man stattdessen eingeben, was schneller geht und auch auf unsichtbare Arbeitsblätter zugreifen kann?

Lieben Gruß! Moni
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Moni,

Du hast nicht geschrieben was Du in der Zelle machen willst. Ich würde die Zelle auch erstmal komplett angebenm da ausgeblendetes Blatt.

Worksheets("Tabelle1").Range("A1")=123

Gruß Hajo
0 Punkte
Beantwortet von
Ahh, jetzt komm ich klar! Vielen Dank für deine Hilfe! :P
...