Makros - Aufzeichnen¶
Ein sehr guter Einstieg in die Automatisierungen mittels VBA (Visual Basic for Applications) bietet sich mit der Aufzeichnung von Makros an.
Hierbei muss man nur die Aufzeichnungstechnik finden und startet dann einen Makro Recorder. Dieser zeichnet bis zum Stoppen der Aufzeichnung die relevanten Aktionen auf.
Übung: Aufzeichnungen von Makros
Je nach Herangehensweise ergeben sich verschiedene Codes. Das Schöne an diesen Makroaufzeichnungen ist ihr Try and Error Charakter, der viel Raum für Freiheit und Erkenntnisse beim Ausprobieren bereit hält.
Tipp
Bei fehhlerhaften Makros bitte die Stopp-Taste des VBA-Editor klicken.
In den Seminaren erhalten die Trainees die passenden Tricks & Kniffe, um die Problemchen hierbei zu meistern. Insbesondere der Umgang mit Makros, die fehlerhaft unterbrechen wird trainiert.
Schauen wir uns einen ersten möglichen Quellcode eines Makros an.
1Sub Transponieren01()
2'
3' Transponieren01 Makro
4' einfaches Transponieren - Markieren mit Maus!
5'
6
7'
8 Range("A1:G4").Select
9 Selection.Copy
10 Sheets("Tabelle2").Select
11 Range("A1").Select
12 Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
13 False, Transpose:=True
14 Range("A1").Select
15End Sub
Beim Aufrufen dieses Makros wurden nur die einfachsten Dinge für die Erstellung eines Makros beachtet, sodass das Makro in vielen Fällen seine Arbeit verweigert.
In der nächsten Variante wird eine verbesserte Markierung des zu transponierenden Bereichs vorgenommen. So kann man beliebige Bereiche (Dimensionen von Zellen) sauber markieren.
1Sub Transponieren02()
2'
3' Transponieren02 Makro
4' jetzt mit intelligenter Tastenmarkierung
5'
6
7'
8 Range("A1").Select
9 Range(Selection, Selection.End(xlToRight)).Select
10 Range(Selection, Selection.End(xlDown)).Select
11 Selection.Copy
12 Sheets("Tabelle2").Select
13 Range("A1").Select
14 Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
15 False, Transpose:=True
16 Range("A1").Select
17End Sub
Und zum Schluss kann man die Ausgangssituation zu Beginn des Makros noch verbessern.
1Sub Transponieren_03()
2'
3' Transponieren_03 Makro
4' mit neuer Tabelle für Transponierung
5'
6
7'
8 Sheets("Tabelle1").Select
9 Range("A1").Select
10 Range(Selection, Selection.End(xlToRight)).Select
11 Range(Selection, Selection.End(xlDown)).Select
12 Selection.Copy
13 Sheets.Add After:=Sheets(Sheets.Count)
14 Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
15 False, Transpose:=True
16 Range("A1").Select
17 Application.CutCopyMode = False
18End Sub
Und hier wurde auch noch ein neues Tabellenblatt erzeugt, auf welchem dann der Tabellenbereich wieder eingefügt wurde.