Ich hab zu dem Problem hier noch mal etwas ausführlicher geantwortet.
Kurz gesagt:
Dim i As Long
For i = 5 To ActiveWorkbook.Worksheets.Count
If ActiveWorkbook.Worksheets(i).Range("B2").Value = "Zelleninhalt" Then
'...
End If
'...
Next
Oder:
Dim wks As Excel.Worksheet
For Each wks In ActiveWorkbook.Worksheets
'Abarbeitung aller IF-Bedingungen
If wks.Range("B2").Value = "Zelleninhalt" Then
'...
End If
'...
Next
Ein Activate ist nicht notwendig. Du scheinst zudem einige Tabellenblätter nicht berücksichtigen zu wollen. Im ersten Fall kann man das über den Index (bei dir 5 und mehr) steuern. Im Zweiten Fall kann man das über das Abfragen des Blattnamens, oder noch besser über den CodeNamen des Blattes abfangen.
Übrigens, für Indizes ist es üblich die Buchstaben i, j und k zu verwenden (ist nichts definiertes, hat sich nur so eingebürgert) - es kommt recht selten vor das man mehr als drei Schleifenzähler benötigt. Wie du siehst muss man auch nicht den Schleifenzähler bei Next angeben, das weiß VBA allein zuzuordnen. Wer's dennoch angibt, tut das ehern für sich selbst. ;)
Grüße
|