Wenn es immer die gleiche Logik ist (4 nach links, 5 nach rechts, 10 insgesamt) dann einfacher _ so:
Sub CallMany()
With Sheets("ÜBERSICHT")
Call ZehnSpalten(.Range("O1"))
Call ZehnSpalten(.Range("Y1"))
Call ZehnSpalten(.Range("AI1"))
End With
End Sub
Sub ZehnSpalten(myRange As Range)
If myRange.Value = 0 Then
myRange.Offset(0, -4).Resize(1, 10).EntireColumn.ClearContents
End If
End Sub
Die angesprochene Formel in O1, Y1, AI1 geht dabei aber flöten. Ich nehme an das möchtest du so.
Grüße,
Klaus M.vdT.
Funktioniert tadellos.
Ich benötige nun etwas ähnliches.
Nach Prüfung ob der Wert in der Zelle D146 = 0 ist sollen - wenn ja - die Zeilen 145-162 vollständig gelöscht werden.
Das ganze geht dann so weiter:
Wenn Zelle 128 = 0 Zeilen 127-144 löschen
Wenn Zelle 110 = 0 Zeilen 109-126 löschen
usw. (den Rest kann ich ja dann selber einfügen)
Es handelt sich also jeweils um 18 Zeilen.
Wahrscheinlich kann der Code von oben einfach entsprechend abgewandelt werden?
Hoffe auf Eure Hilfe. Vielen Dank.
Gruss, pan