AW: Makro auf alle Blätter einer Datei anwenden
05.07.2007 16:05:00
Melanie
Hallo Hajo,
das ist mein Code: (hatte ihn nicht eingefügt, weil er so lang ist :o)
Sub Sollstunden_fuer_MIK_Budget()
'Formeln durch Werte ersetzen
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Fixierung aufheben
ActiveWindow.FreezePanes = False
'Spalten einfügen und benennen
Columns("A:D").Select
Selection.Insert Shift:=xlToRight
Range("A1").Select
ActiveCell.FormulaR1C1 = "Periode"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Jahr"
Range("C1").Select
ActiveCell.FormulaR1C1 = "KTR"
Range("D1").Select
ActiveCell.FormulaR1C1 = "KOA"
Range("E1").Select
ActiveCell.FormulaR1C1 = "Aufwand"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Kosten"
'KTR ermitteln
Range("C2").Select
ActiveCell.FormulaR1C1 = "=MID(R[-1]C[4],10,4)"
'Formeln durch Werte ersetzen
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Basis löschen
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
'Zwischen und Ist löschen
Range("G4").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, -1).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
'Summenzeile löschen
Range("H5").Select
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireRow.Delete
Kopierbereich = Range("H5").End(xlDown).Row
'Januar kopieren
'Monatswert einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "1"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
'Monatswert kopieren
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
'Wert in Spalte A einfügen
Range("A2").Select
ActiveSheet.Paste
'Werte kopieren
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D2").Select
ActiveSheet.Paste
Columns("I:J").Delete
'Februar kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "2"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'Maerz kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "3"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'April kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "4"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'Mai kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "5"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'Juni kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "6"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'Juli kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "7"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'August kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "8"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'September kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "9"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'Oktober kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "10"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'November kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "11"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'Dezember kopieren
'Monat einfügen
Range("G5").Select
ActiveCell.FormulaR1C1 = "12"
Selection.AutoFill Destination:=Range("G5:G" & Kopierbereich), Type:=xlFillDefault
Range("G5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
'Werte einfügen
Range("H5:J5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
Columns("I:J").Delete
'Restliche Spalten löschen
Columns("G:G").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Delete
'Jahr und KTR in alle Zeilen kopieren
AlleZeilen = Range("A2").End(xlDown).Row
Range("B2").Select
ActiveCell.FormulaR1C1 = "2007"
Range("B2:C2").Select
Selection.Copy
Range("B3:C" & AlleZeilen).PasteSpecial
'Leere Zeilen löschen
Range("F1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=6, Criteria1:="="
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
'Filter Deaktivieren
Selection.AutoFilter
End Sub
Und jetzt soll er das für alle Blätter machen. Funzt aber nid.
Kann das an der Variablendeklaration hängen? Ich weiß nicht genau wie ich den "Kopierbereich" und "AlleZeilen" deklarieren muss.
Danke im Voraus!!