Hallo, ich bitte um eure Hilfe, auch wenn ich wahrscheinlich nur den Wald vor lauter Bäumen nicht sehe.
Es geht um den letzten Teil des Makros, wo eine bestimmte Zelle in Spalte A ausgewählt wird.
Ich wollte hier zwei Bedingungen aufführen, die erfüllt sein müssen, damit diese Zelle ausgewählt wird, nämlich dass der soeben in Spalte A eingegebene Text bereits in der Spalte A steht, egal wie oft, was ich mit der Prüfung
If Application.WorksheetFunction.CountIf(Worksheets("Ergebnis").Range("A2:A" & lLastRow), Target.Value) > 0
prüfen wollte
und die Bedingung dass der letzte Text in Spalte A ungleich dem vorletzten Text in Spalte A ist. Was ich mit der Prüfung
And Target.Value > Range("A" & lLastRow - 1).Value Then
prüfen wollte.
Doch wenn die zweite Prüfung nicht erfüllt ist, also die beiden letzten Texte identisch sind, wird trotzdem die letzte Zeile gelöscht. Warum?
Danke für die Hilfe
Christian
Hier noch das ganze Makro:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lRowFind&, lLastRow&
If Target.Count > 1 Then GoTo ende
With Selection
.Font.Bold = False
.Font.Name = "Calibri"
.Font.Size = 11
.Font.ColorIndex = xlAutomatic
.Hyperlinks.Delete
.HorizontalAlignment = xlCenter
.Font.Italic = True
End With
Cells.EntireColumn.AutoFit
'* letzte belegte Zeile ermitteln
lLastRow = Cells(Rows.Count, "A").End(xlUp).Row - 1
'* wenn Zeile gelöscht oder Text kopiert werden soll, dann hier Abbruch
If Target.Row > lLastRow + 1 Then GoTo ende
'* rechtes Leerzeichen (Blank) entfernen
If Right(Selection, 1) = " " Then Target.Value = Left(Target.Value, Len(Target.Value) - 1)
Application.EnableEvents = False
'* erste Zelle mit dem Suchbegriff anspringen
If Application.WorksheetFunction.CountIf(Worksheets("Ergebnis").Range("A2:A" & lLastRow), Target.Value) > 0 And Target.Value > Range("A" & lLastRow - 1).Value Then
lRowFind = Application.Match(Target.Value, Range("A2:A" & lLastRow), 0) + 1
Rows(Target.Row).EntireRow.Delete
Cells(lRowFind, "A").Select
End If
ende:
Application.EnableEvents = True
End Sub