Excel Makro erstellen
Dieser Tage durfte ich erstmals ein Makro für eine Excel Datei erstellen und hatte damit so damit meine Probleme. Aus diesem Grund will ich schnell zeigen wie man richtig ein Makro erstellt.
Excel Makro erstellen
Hier ein kleines Beispiel. Angenommen wir haben eine Excel Datei in der wir eine Liste mit Daten haben. Diese wollen wir mit einem Makro über einen Klick auf einen Button nach bestimmten Regeln auf ein anderes Excel Blatt kopieren:
- wir legen einen neuen Button an
Möglicherweise wird die Entwicklertools Leiste nicht angezeigt. Falls das so ist kann man diese unter Datei->Optionen->Menüband anpassen hinzufügen. Den Button legen wir an, indem wir das erste Objekt welches uns bei Einfügen vorgeschlagen wird. Ein Klick auf die Tabelle erzeugt den Button den wir natürlich umbenennen können. - Makro zuweisen
Um ein Excel Makro zu erstellen machen wir einen Rechtsklick auf den Button und wählen ‚Makro zuweisen…‘. In diesem Menü können wir einen Namen festlegen. Mit einem Klick auf ‚Neu‘ öffnet sich der Visual Basic Editor, wo wir bereits eine angelegte Funktion vorfinden.
- Excel Makro schreiben
Nun kann man sein Excel Makro programmieren. Im Visual Basic Editor kann man die Funktion mit dem grünen Startknopf (Sub ausführen) auch testen. Sobald man hier fehlerfrei ist sollte man die Ausführung des Makros auch über den Button testen.
Code Beispiel
Anbei ein paar kleine Codebeispiele:
Dim max As Integer 'highest Line Number Dim out As String 'Output Sheet max = 1000 out = "Tabelle2" Range("A1:C" & max).Copy Destination:=Sheets(out).Cells(1, 1)
Es werden hier zuerst 2 Variablen angelegt. Mit ‚max‘ definieren wir bis zu welcher Zeile wir den Inhalt kopieren wollen, mit ‚out‘ legen wir fest wohin wir den Inhalt kopieren wollen. Die letzte Zeile kopiert alles von A1 bis C1000 auf das Blatt mit dem Namen Tabelle 2 und zwar ab der Zelle 1,1 also ganz oben links.
Probleme
Wie ich bereits gesagt habe war die Erstellung problematisch. Das Problem, ich sollte ein Makro für eine bereits bestehende Excel (*.xlsx) Datei erstellen. Folgender Fehler trat immer auf:
Sub of Function not defined
und das obwohl sowohl der Funktionsname korrekt war, schließlich wurde dieser über den Button automatisch angelegt.
Die Lösung: man muss Makros aktivieren. Nur funktioniert das bei den neueren Office Produkten nicht mit *.xlsx Dateien. Man muss die Datei neu speichern und zwar als *.xlsm (*.xls mit Makro). Danach sollte dieser Fehler weg sein.