AW: Zellen Inhalt löschen, außer bestimmten Wert
daniel
Hi
am einfachsten mit einer zweiten Schleife über die Spalte
dim FT as range, X as range
for Each FT in Range("H4:NI4")
If FT.Value = "FT" Then
For each X in Range(Cells(11, FT.Column), Cells(40, FT.Column))
if X.Value <> "" then if X.value <> "x" then X.ClearContents
End If
end if
Next
ein etwas kreativerer Weg ist dieser, da er ohne Schleife auskommt:
With Range("H4:NI4")
.Replace "FT", True, xlWhole
With Intersect(.SpecialCells(xlCellTypeConstants, 4).EntireColumn, Range("H11:NI40"))
.Replace "x", True, xlWhole
.SpecialCells(xlCellTypeConstants, 3).ClearContents
.Replace True, "x", xlWhole
End With
.Replace True, "FT", xlWhole
End With
dafür funktioniert er nur mit ein paar Einschränkungen, z.B. müssen die Werte als als Konstante Werte vorliegen und nicht als Formel
außerdem muss es in der Zeile 4 mindestens einmal den Wert "FT" geben und es muss auch Werte geben, die gelöscht werden müssen, ansonsten läuft der Code auf einen Fehler. Das kann man aber vermeiden, wenn man vor diesem Code ein "On Error Resume Next" ausführt, dh bei einem Fehler gibt es keinen Abbruch, sondern es wird einfach die nächste Programmzeile ausgeführt. in diesem Fall kann man das so machen.
Gruß Daniel