Guten Morgen,
ich beiße mir die Zähne an dem Fehler aus.
Was soll das Makro tun:
durch die Tabellenblätter gehen, dabei eines auslassen (Read me), und in den Tabellenblättern die Zeilen löschen, wenn die betreffende Zeile in Spalte A "Kein Konto" als Text hat.
Was tut das Macr wirklich:
es sucht sich die Tabellenblätter durch, und löscht nur im ersten Tabellenblatt. d.h. das erste Blatt fehlen zu viele zeilen, die restlichen Tabellenblätter sind unberührt.
Sub Stundenauswertung ()
'Variable fuer das neue Workbook
Dim Wb As Workbook
Dim WS As Worksheet
Dim vis As Long
'Variable für den Dateinamen der Ausgangsdatei inkl. Pfad
Dim strOpenFile As Variant
'Quelldatei auswaehlen
strOpenFile = Application.GetOpenFilename(, , "Waehlen die aktuelle Stundenauswertungs-Exceldatei aus:")
'Falls kein Datei ausgewaehlt wurde
If strOpenFile = False Then Exit Sub
'Oeffnet die neue Datei und weist sie der Variablen wb zu.
Set Wb = Workbooks.Open(strOpenFile, UpdateLinks:=0, ReadOnly:=False)
'Variable WS zuweisen
Set WS = Wb.ActiveSheet
'Schleife Zeilen leeren
For Each WS In Wb.Worksheets
If InStr(",ReadMe, ", "," & WS.Name & ",") = 0 Then
'Visibility des Tabellenblatts speichern und Tabellenblatt einblenden
vis = WS.Visible
WS.Visible = xlSheetVisible
'löschen bestimmter Zeilen
With WS.Range("A30")
If .Text = "kein Konto" Then Rows("30").Delete
End With
With WS.Range("A29")
If .Text = "kein Konto" Then Rows("29").Delete
End With
„DAS GET IM ORIGINAL NOCH BIS ZEILE 6“
'Tabellenblatt wieder ausblenden
WS.Visible = vis
End If
Next WS
'Zurück zum Macrodatei
Windows("Makro.xlsm").Activate
End Sub
|