Supportnet / Forum / Tabellenkalkulation
Makro funzt nicht in neuer Mappe, WARUM???
Frage
Hallo mal wieder,
in Excel 2003 habe ich folgendes Problem:
Ich habe zwei Dateien (einen Altstand einen Aktuellen)
In beiden ist das folgende Makro drin
Sub RePhIV()
' RePhIV
Columns("p:fz").Select
Selection.EntireColumn.Hidden = False
Columns("p:dx").Select
[u] Selection.EntireColumn.Hidden = True[/u]
Columns("m").Select
Selection.EntireColumn.Hidden = True
Range("A1").Select
End Sub
Im alten Stand funzt es, im neuen nicht. WARUM?????
Er bleibt bei der oben unterstrichenen Zeile hängen.
Fehlermeldung:
Laufzeitfehler 1004
Die Hidden-Eigenschaft des Range-Objektes kann nicht festgelegt werden.
Meine VBA-Kenntnisse beschränken sich zu allem übel noch auf das ändern der Spaltenbezeichnungen.
Ich glaub an Euch.
Und vor Allem
[b]DANKE[/b] schonmal Vorab.
Gruß Maik
Antwort 1 von Hajo_Zi
Hallo maik,
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: mit und ohne select Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.
Option Explicit
Sub RePhIV()
' RePhIV
Columns("p:fz").EntireColumn.Hidden = False
Columns("p:dx").EntireColumn.Hidden = True
Columns("m").EntireColumn.Hidden = True
End Sub
Gruß hajo
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: mit und ohne select Auf meiner Homepage sind alle meine Beispiele ohne Select. Da kann man sich also einige Lösungsansätze zu diesem Thema ansehen.
Option Explicit
Sub RePhIV()
' RePhIV
Columns("p:fz").EntireColumn.Hidden = False
Columns("p:dx").EntireColumn.Hidden = True
Columns("m").EntireColumn.Hidden = True
End Sub
Gruß hajo

