hallo,
es tut was es soll, nur tut es das nur mit dem ersten tabellenblatt, aber es soll es mit allen tabellenblättern machen, außer denen, die ich mit dem IF InStr ausgeschlossen habe. ich denke es liegt an der zuweisung der WS variablen.
---------
Sub Std_macro()
'
' Stundenauswertung
'
'Variable fuer das neue Workbook
Dim Wb As Workbook
Dim WS As Worksheet
'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 löschen starten
For Each WS In Wb.Worksheets
'NUR FELDER VON PERSONEN BETREFFEND
If InStr(",ReadMe,Projektliste,change history,Summe Verrechnung,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27,P28,P29,P30, ", "," & WS.Name & ",") = 0 Then
'löschen bestimmter Zeilen
With WS.Range("A17")
If (.Text = "SALSA" Or .Text = "Salsa" Or .Text = "kein Konto" Or .Text = "9182613200") Then Rows("17").Delete
End With
With WS.Range("A16")
If (.Text = "SALSA" Or .Text = "Salsa" Or .Text = "kein Konto" Or .Text = "9182613200") Then Rows("16").Delete
End With
With WS.Range("A15")
If (.Text = "SALSA" Or .Text = "Salsa" Or .Text = "kein Konto" Or .Text = "9182613200") Then Rows("15").Delete
End With
End If
Exit For
Next WS
'Zieldatei speichern unter ...
ActiveWorkbook.SaveAs Filename:=Wb.Path & "zwischenspeicher"
End Sub
|