ich habe das mal minimiert und etwas experimentiert. folgendes passiert.
------------
Sub cyclename()
Dim ws As Worksheet
Dim Wb As Workbook
'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)
For Each ws In Wb.Worksheets()
MsgBox ws.Name
Next
End Sub
--------------
das funktioniert: ich wähle einen datei aus, mir wird per masagebaox nacheinander alle sheetnamen angezeigt.
folgendes funktioniert nicht:
----------------
Sub cyclename()
Dim ws As Worksheet
Dim Wb As Workbook
'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)
For Each ws In Wb.Worksheets()
With ws.Range("A6")
If (.Text = "SALSA" Or .Text = "Salsa" Or .Text = "kein Konto" Or .Text = "9182613200") Then Range("A6:Z6").Delete
End With
Next
End Sub
------------------ hier soll jeweils in einem Feld überprüft werden ob einer der 4 texte enthalten ist, wenn ja, dann wird ein bereich gelöscht. HIER FUMKTIONIERT DER LOOP NICHT!!! d.h. irgnedwie bringt was With.. end with murks rein. wie kann ich diese Aufgabe anderes schreiben, damit der Loop nicht blockiert wird?
was ich letztendlich möchte ist, dass ein loop über alle Tabellenblätter läuft. Die Felder A6 bis A16 werden auf diese 4 Texte getestet. Wenn einer der texte Texte Inhalt der Zelle ist, soll die ganze Zeile gelöscht werden.
|