zellen mit wert = 0 zu löschen sollte eigentlich kein Problem sein, aber ich weiß bei untenstehendem Code nicht, wo ich dies einfügen soll. Wenn ich nach IsEmpty(rngZelle) noch ein Or not IsNull(rngZelle) hinsetze, dann verschiebt mir das Makro auch die leeren Zellen....und auch die Zellen mit Wert 0.
Ich möchte aber eigentlich nur untenstehenden Code so ergänzen, dass er bei Zellen mit Wert 0 den Inhalt löscht (clearcontents).
Könnt ihr mir helfen?
With wksWoche
Trefferstart1 = 16
'Startzeile für Treffereinträge im Ergebnisblatt
lngZeileTreffer = Application.WorksheetFunction.Max(Trefferstart1, _
.Cells(.Rows.Count, 6).End(xlUp).Row + 1)
Trefferstart2 = 30
lngZeileKeinTreffer = Application.WorksheetFunction.Max(Trefferstart2, _
.Cells(.Rows.Count, 5).End(xlUp).Row + 1)
End With
iSecond = 3 'Spalte mit Namen in der Anwesenheitsliste
For Each rngZelle In wksSchicht.Range("B11:C14") 'Bereich ggf anpassen
If Not IsEmpty(rngZelle) Then 'leere Zelle überspringen
bln = False
'Name im Wochenblatt-Schichtplan
sTxtA = rngZelle.Value
With wksAnwesend
'Zeilen im Blatt Anwesend in Spalte iSecond abarbeiten
For iRowB = 3 To .Cells(.Rows.Count, iSecond).End(xlUp).Row
If IsEmpty(.Cells(iRowB, iSecond)) Then
'do nothing - leere Zelle überspringen
Else
sTxtB = .Cells(iRowB, iSecond).Value 'Name in Spalte C
'Prüfen, ob Name aus Schichtplan im Namen in Spalte C enthalten ist
If Mid(sTxtA, 1, 8) = Mid(sTxtB, 1, 8) Then
'Treffer
bln = True
Exit For
End If
End If
Next
End With
If bln = False Then
'Kein Treffer
rngZelle.Interior.ColorIndex = FarbeKeinTreffer
'Name in Spalte E eintragen
With wksWoche.Cells(lngZeileKeinTreffer, 5)
.Value = rngZelle.Value
.Interior.ColorIndex = FarbeKeinTreffer
.BorderAround ColorIndex:=1, Weight:=xlThin
End With
'Name im Schichtplan entfernen
With rngZelle
.ClearContents
.Interior.ColorIndex = xlColorIndexNone
End With
lngZeileKeinTreffer = lngZeileKeinTreffer + 1
End If
End If
Next rngZelle
Danke
Tschau
Mario