AW: wenn in Spalte A, dann löschen in C
19.07.2021 15:09:36
UweD
Hallo
in ein normales Modul.
Sub skdjkdjs()
Dim TB As Worksheet, SP1 As Integer, SP2 As Integer
Dim Z1 As Integer, LR As Long, I As Long
Dim Suchen As String
Set TB = Sheets("Tabelle1")
SP1 = 1 'Spalte A
SP2 = 3 'Spalte C
Z1 = 2 ' Erste Zeile mit Werten
Application.ScreenUpdating = False 'Zappeln ausschalten
With TB
LR = .Cells(.Rows.Count, SP2).End(xlUp).Row 'letzte Zeile der Spalte
For I = LR To Z1 Step -1 ' Abarbeiten von unten nach oben
Suchen = .Cells(I, SP2)
'Prüfen, ob in A vorhanden?
If WorksheetFunction.CountIf(.Columns(SP1), Suchen) > 0 Then
'Ist in der Nachbarzelle ein Datum?
If IsDate(.Cells(I, SP2).Offset(0, 1)) Then
'Ja, Ist darüber frei?
If .Cells(I, SP2).Offset(-1, 1) = "" And I > Z1 Then
'Datum nach oben kopieren
.Cells(I, SP2).Offset(-1, 1) = .Cells(I, SP2).Offset(0, 1)
End If
End If
' Bereich löschen und Folgebereich nach oben schieben
.Cells(I, SP2).Resize(1, 2).Delete xlUp
End If
Next
End With
End Sub
LG UweD