ich habe folgende Schleife über mehrere Excel-Blätter laufen. Leider dauert das zu lange. Hier erst mal der Code:
Dim zelle As Range, defRange As Range
Set defRange = Range("A6:IV6")
For Each zelle In defRange
If zelle.Value "" Then
If Weekday(zelle, vbMonday) 6 Or Weekday(zelle, vbMonday) 7 Then
zelle.Interior.ColorIndex = 35
zelle.Locked = True
zelle.End(xlDown).Interior.ColorIndex = 35
zelle.End(xlDown).Locked = True
'Jetzt kommt der Performance-Killer!!!!!!!!!!!!
For i = 3 To 500
zelle.Offset(i, 0).Locked = False
Next i
End If
If Weekday(zelle, vbMonday) = 6 Or Weekday(zelle, vbMonday) = 7 Then
zelle.Interior.ColorIndex = 15
zelle.Locked = True
zelle.End(xlDown).Interior.ColorIndex = 15
zelle.End(xlDown).Locked = True
zelle.Offset(3, 0).Locked = True
'Jetzt kommt der Performance-Killer!!!!!!!!!!!!
For i = 3 To 500
zelle.Offset(i, 0).Locked = True
zelle.Interior.ColorIndex = 15
Next i
End If
End If
Next zelle
Wegen des durchlaufens zeilenweise dauert das ganze zu lang. Kann mir jemand helfen, wie ich den Teil der Schleife so umbaue, dass ich nicht zeilenweise durchlaufe, sondern ne Range abgreife? So in der Art: Range(Cells())? Geht das irgendwie?
Vielen Dank für die Hilfe.
Gruß
Stefan