die gleichen Zeilen heraussuchen

gregor_k

Grünschnabel
Hallo,

ich wollte in einer Exel Datei mit Hilfe von -Visual Basic die gleichen Zeilen heraussuchen. Natürlich, ich muss die Schleife FOR dann Anweisung IF anwenden und dann muss man die Zeilen miteinander vergleichen, die Fragi ist nur wie?

Danke für Hilfe
 
Visual Basic:
abbruch = false
i = 2 
while not abbruch
 if rows(i & ":" & i ) = rows ( i -1 &":" & i-1) then
 call msgbox ("Zeile : " &i & " entspricht Zeile:" & i -1)  
end if 
abbruch = range ("a" & i ).value = ""
i=i+1
wend

so hier wird immer nur die aktuelle Zeile mit der vorherigen verglichen wenn du mehr willst musst du nur bei den Rows objekten unterschiedliche Zähler nehmen

Grüsse bb
 
jupp das problem ist das man nicht eine ganze Zeile auf gleichheit prüfen kann

also statt der if schleife anweisung
Visual Basic:
    Dim i As Integer
    Dim spalte As Integer
    Dim zeilegleich As Boolean
    
    zeilegleich = True
    i = 2
    For spalte = 1 To 256
        If Not (Cells(i, spalte).Value = Cells(i - 1, spalte).Value) Then
            zeilegleich = False
        End If
    Next spalte

Grüsse bb
 
Hallo brainbyte

Du hast das wirklich sehr gut ausgedacht. Besten Dank :)

Ich habe es ein bisschen überarbeitet, so dass i-te mit j-ter Zeile miteinander verglichen werden kann.

Sub Suche()
Dim i As Integer
Dim j As Integer
Dim Nr_Zeile As Integer
Dim Nr_Spalte As Integer
Dim spalte As Integer
Dim zeilegleich As Boolean

Nr_Zeile = 9
Nr_Spalte = 5

For i = 1 To Nr_Zeile - 1
k = 0
For j = i + 1 To Nr_Zeile
zeilegleich = True
For spalte = 1 To Nr_Spalte
If Not (Cells(i, spalte).Value = Cells(j, spalte).Value) Then
zeilegleich = False
End If
Next spalte


If zeilegleich = True Then

Cells(i, Nr_Spalte + 2 + k) = CStr(i) + "_:_" + CStr(j)
k = k + 1
End If
Next j

Next i

End Sub
 
Zurück