Hallo zusammen,
folgende Ausgangssituation:
Das Makro (hier noch unvollständig) soll alle Arbeitsmappen bzw. die darin befindlichen und in Anzahl und Bezeichnung variablen Reiter durcharbeiten, sofern in dem jeweiligen Reiter in Zelle M173 ein Wert ungleich 0 steht. Sofern 0 drinsteht, soll das Makro nicht abbrechen, sondern den Reiter überspringen und mit dem nächsten Reiter weitermachen.
Mein Problem: Zwar öffnet das Makro die erste Arbeitsmappe und nimmt eine entsprechende Formatierung vor, jedoch geht es anschließend nicht weiter, d.h. die dahinter liegenden Reiter werden nicht angesprochen…. Hat jemand einen Tipp für mich?
Sub Aufbereitung()
Dim cDir As String
Dim sPath As String
Dim i As Integer
Excel.Application.EnableEvents = False
Application.DisplayAlerts = False
sPath = ThisWorkbook.Path & "\verarbeiten\"
cDir = Dir(sPath & "*.xlsm")
Do While cDir <> ""
Workbooks.Open (sPath & cDir)
Sheets("Übersicht").Delete
Sheets("BEZ").Delete
Sheets(1).Select
For i = 1 To Sheets.Count
With Sheets(i)
ActiveSheet.Unprotect "controlling2020"
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
If ActiveSheet.Range("M173").Value <> "0" Then
ActiveSheet.Outline.ShowLevels RowLevels:=2
Cells.Select
Selection.Rows.Ungroup
Range("B1").Select
Range("B8").Select
ActiveCell.FormulaR1C1 = "Spalte B"
Range("C8").Select
ActiveCell.FormulaR1C1 = "Spalte C"
Range("D8").Select
ActiveCell.FormulaR1C1 = "Spalte D"
Range("E8").Select
ActiveCell.FormulaR1C1 = "Spalte E"
Range("F8").Select
ActiveCell.FormulaR1C1 = "Spalte F"
Range("G8").Select
ActiveCell.FormulaR1C1 = "Spalte G"
Range("H8").Select
ActiveCell.FormulaR1C1 = "Spalte H"
Range("I8").Select
ActiveCell.FormulaR1C1 = "Spalte I"
Range("J8").Select
ActiveCell.FormulaR1C1 = "Spalte J"
Range("K8").Select
ActiveCell.FormulaR1C1 = "Spalte K"
Range("L8").Select
ActiveCell.FormulaR1C1 = "Spalte L"
Range("M8").Select
ActiveCell.FormulaR1C1 = "Spalte M"
Range("B8").Select
Selection.AutoFilter
ActiveSheet.Range("$A:$M").AutoFilter Field:=13, Criteria1:="<>0", Operator:=xlFilterValues
ActiveSheet.Range("$A:$M").AutoFilter Field:=2, Criteria1:="<>"
Columns("D:L").Select
Selection.Delete Shift:=xlToLeft
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Range("B10") = Range("D3")
Range("B10").Select
Selection.Copy
ActiveCell.Offset(0, 1).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, -1).Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B1").Select
End If
End With
Next
cDir = Dir
Excel.Application.EnableEvents = True
Application.DisplayAlerts = True
Loop
End Sub
|