ich auch mal wieder als Fragesteller bei einem VBA-Problem.
Folgendes Makro lief bisher ganz gut, nach einigen Änderungen zwecks Erweiterung auf ein zweites Arbeitsblatt hakt's aber.
Hier der aktuelle Code:
Sub Actual_Budget_2008_anpassen()
Application.ScreenUpdating = False
Dim wkb As Workbook
Dim wks1, wks2 As Worksheet
Set wkb = Workbooks("Actual_Budget_2008.xls")
Set wks1 = Worksheets("Europe by Country")
Set wks2 = Worksheets("SFG")
wkb.Activate
wks1.Activate
With wkb
For i = 1 To 2
wks1.Range("A1").EntireColumn.Insert
wks1.Range("A1").EntireRow.Insert
Next i
Range("C5").EntireRow.Insert
End With
With wks1
Dim spalte As Integer, vergleich As String
For spalte = 1 To .Cells(2, .Columns.Count).End(xlUp).Column
vergleich = .Cells(3, spalte)
If Left(vergleich, 1) = "Q" Then
Cells(1, spalte + 1).EntireColumn.Insert
ElseIf vergleich = "01.01.2008" Then
Cells(1, spalte).EntireColumn.Insert
spalte = spalte + 1
End If
Next
End With
wks2.Activate
For i = 1 To 2
Range("A1").EntireColumn.Insert
Next i
Range("C5").EntireRow.Insert
With wks2
For spalte = 1 To .Cells(2, .Columns.Count).End(xlUp).Column
vergleich = .Cells(3, spalte)
If Left(vergleich, 1) = "Q" Then
Cells(1, spalte + 1).EntireColumn.Insert
ElseIf vergleich = "01.01.2008" Then
Cells(1, spalte).EntireColumn.Insert
spalte = spalte + 1
End If
Next
End With
Workbooks.Open ("L:\Finanz\manacs\manacs 2008\04-2008\Actual_Budget_2008 (neu).xls")
wks1.Activate
Cells.Copy
Windows("Actual_Budget_2008.xls").Activate
wks1.Activate
Cells.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
X Windows("Actual_Budget_2008 (neu).xls").Activate
X wks2.Activate
Cells.Copy
Windows("Actual_Budget_2008.xls").Activate
wks2.Activate
Cells.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Dim monat As Double, file_new, tmonat As String
Do Until monat >= 1 And monat
Die problematische Stelle ist folgende (oben mit X am Anfang gekennzeichnet):
Windows("Actual_Budget_2008 (neu).xls").Activate
wks2.Activate
Die Ziel-Mappe hat die gleichen Tabellenblattnamen. Er aktiviert die ...(neu)-Datei und bei der nächsten Tabelle springt das Makro aber wieder zur ersten Datei. Warum, verstehe ich nicht.
Ich bin mir bewusst, dass sicher an den meisten (oder allen) Stellen das Activate wegkann, aber muss mich da immer schrittweise hinarbeiten, da reichen meine VBA-Kenntnisse sonst nicht. Auch über sonstige "Umständlichkeiten" dürft ihr gern hinwegsehen (Verbesserungsvorschläge trotzdem immer willkommen!).
Noch kurz zum Hintergrund: Ich bekomme jeden Monat eine Datei, die ich nach neuem Muster umformatiere. Dies soll das Makro automatisieren.
Für alle Hilfe vorab schon mal ein großes Dankeschön.
Gruß
David