Mit einem Makro werden die verschiedensten Abläufe automatisiert. In diesem Beispiel geht es um die Selektion von Daten und deren Ausgliederung auf ein anderes Tabellenblatt. Zum Schluss werden noch die Vorzeichen auf eine sehr elegante Art und Weise gedreht.
Sub Falschbuchungen_Funktionsbereich()
‚Als erstes wird der Autofilter aktiviert. Dieser ist immer sehr hilfreich, wenn es um die Selektion von Daten geht.
Selection.AutoFilter
‚Jetzt werden die Daten nach einem oder mehreren Kriterien gefiltert
ActiveSheet.Range("$A$1:$M$5163").AutoFilter Field:=1, Criteria1:="SA"
ActiveSheet.Range("$A$1:$M$5163").AutoFilter Field:=10, Criteria1:= _
"SW132452"
ActiveSheet.Range("$A$1:$M$5163").AutoFilter Field:=13, Criteria1:="5465"
‚Nun werden die Daten Spalte für Spalte markiert, kopiert und auf einem anderen Tabellenblatt eingefügt
Range("I1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveSheet.Previous.Select
ActiveSheet.Paste
ActiveSheet.Next.Select
Range("K1").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
ActiveSheet.Previous.Select
Range("B1").Select
ActiveSheet.Paste
[adcode categories=“office,excel“]
‚Unabhängig vom Namen des Tabellenblattes wird das nächste Blatt ausgewählt
ActiveSheet.Next.Select
Range("M1").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
‚Unabhängig vom Namen des Tabellenblattes wird das vorherige Blatt ausgewählt
ActiveSheet.Previous.Select
Range("C1").Select
ActiveSheet.Paste
ActiveSheet.Next.Select
Range("D1").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
ActiveSheet.Previous.Select
Range("D1").Select
ActiveSheet.Paste
Range("F2").Select
‚Jetzt wird noch bei einer kompletten Spalte das Vorzeichen gedreht
Application.CutCopyMode = False
Selection.FormulaR1C1 = "-1"
Selection.Copy
Range("D1").Select
Range(Selection, Selection.End(xlDown)).Select
‚Zum Vorzeichen drehen wird die Multiplikationsmöglichkeit in der Einfüge-Funktion genommen
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False
Range("F2").Select
Application.CutCopyMode = False
‚Alle nicht mehr benötigten Werte werden gelöscht
Selection.ClearContents
Range("A1").Select
End Sub
Lesen Sie auch den Beitrag Excel VBA: Text mit einem Makro aufbereiten.