Suchschleife nach Doppelte Zeile.
14.06.2006 17:34:21
Kay
Ich strick schon ewig rum und habe nicht so richtig die Idee, wie ich den Code richtig machen muss.
Ich will folgendes erreichen:
1. Er soll mir alle gleichen Zeilen (nach Spalte A) raussuchen
2. Wenn er einen gleichen Wert in Spalte A gefunden hat, soll diese verglichen werden , ob Spalten A,C,F identisch sind. Wenn das der Fall ist kann er alle gleichen Zeilen leersetzen. Wenn ein Zeile abweicht, sollen alle Zeilen bestehen bleiben.
3. Wenn eine Zeile in der Spalte A den Eintrag KW hat kann er diese auch stehen lassen.
Das Problem an meinem Code ist, dass es bei 2 gleichen Zeilen funktioniert. Wenn aber die Zeile noch öfters vorkommt, löscht er trotzdem eine der Zeilen.
Hier mal mein Code:
Sub gleicheWerte_loeschen()
' sucht alle gleichen Zellen (Spalte A,C, F) und löscht die
Dim iRow1 As Long, iRow2 As Long, iRowL As Long, LZeile As Long
Dim Counter As Integer
Dim SpalteA() As Boolean
iRowL = WorksheetFunction.CountA(Columns(1))
ReDim SpalteA(1 To iRowL)
LZeile = 1
For iRow1 = 1 To iRowL
If Not SpalteA(iRow1) = True Then 'prüft ob Zeile bereits coloriert wurde
SpalteA(iRow1) = True
For iRow2 = iRow1 + 1 To iRowL
LZeile = LZeile + 1
If Cells(iRow1, 1).Value = Cells(iRow2, 1) Then
SpalteA(iRow2) = True
If Cells(iRow2, 1).Value = "KW" Then
Cells(iRow2, 1).EntireRow.Interior.ColorIndex = 2 'Macht den Zeilenhintergrund weiß
ElseIf Cells(iRow1, 1).Value = Cells(iRow2, 1) _
And Cells(iRow1, 3).Value = Cells(iRow2, 3) _
And Cells(iRow1, 6).Value = Cells(iRow2, 6) Then
Rows(iRow2).ClearContents
Counter = Counter + 1
End If
End If
If Counter > 0 Then
Rows(iRow1).ClearContents
End If
Next iRow2
If Counter > 0 And LZeile = iRowL Then
Rows(iRow1).ClearContents
End If
End If
Counter = 0
LZeile = 1
Next iRow1
Call ZeilenLoeschen
End Sub