falscher vergleich

Bild

Betrifft: falscher vergleich
von: artur
Geschrieben am: 05.04.2005 14:57:24
Hallo alle zusammen,
ich wollte zwei tabellen vergleichen. Habe von Hajo auch folgendes makro(habe es einwenig modifiziert),


Sub Vergleichen()
Dim LoI As Long
    Dim LoJ As Long
    Dim LoLetzte1 As Long
    Dim LoLetzte2 As Long
    Dim BoNein As Boolean
    LoLetzte1 = 65536
    With Worksheets("Tabelle1")
        If .Range("b65536") = "" Then LoLetzte1 = .Range("b65536").End(xlUp).Row
    End With
    LoLetzte2 = 65536
    With Worksheets("Tabelle2")
        If .Range("b65536") = "" Then LoLetzte2 = .Range("b65536").End(xlUp).Row
    End With
    For LoI = 1 To LoLetzte1
        For LoJ = 1 To LoLetzte2
            ' Leerzellen nicht kennzeichnen
            If Worksheets("Tabelle1").Cells(LoI, 2) <> "" Then
                If Worksheets("Tabelle1").Cells(LoI, 2) = Worksheets("Tabelle2").Cells(LoJ, 2) Then
                    Worksheets("Tabelle1").Cells(LoJ, 2).Interior.ColorIndex = 4
                    BoNein = True
                End If
            End If
        Next LoJ
        If BoNein = False Then
            Worksheets("Tabelle1").Cells(LoI, 2).Interior.ColorIndex = 3
        End If
        BoNein = False
    Next LoI
End Sub


nur vergleicht es nicht richtig. Manche werden richtig verglichen und eingefärbt und manche nicht. Voran liegt das??
Könnt ihr mir helfen,
hier das Beispiel
https://www.herber.de/bbs/user/20713.xls
Vielen Dank für die hilfe
MFG
artur
Bild

Betrifft: AW: falscher vergleich
von: P@ulchen
Geschrieben am: 05.04.2005 16:24:43
Hallo
mein Vorschlag: https://www.herber.de/bbs/user/20720.xls
Ich denke, dass hier die Find-Methode wesentlich schneller arbeitet:


Sub Vergleichen2()
Dim bRow As Long
Dim FindZelle As Range
With Worksheets("Tabelle1")
    bRow = IIf(IsEmpty(.Range("B65536")), .Range("B65536").End(xlUp).Row, 65536)
    For i = 1 To bRow
        Set FindZelle = Worksheets("Tabelle2").Columns(2).Find(.Range("B" & i), , , xlWhole)
        If Not FindZelle Is Nothing Then
            .Range("B" & i).Interior.ColorIndex = 4
        Else
            .Range("B" & i).Interior.ColorIndex = 3
        End If
    Next
End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.1

Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Bild

Betrifft: AW: falscher vergleich
von: artur
Geschrieben am: 05.04.2005 16:33:01
Hi Paulchen,
vielen Dank,funktioniert super.
Noch eine Frage habe ich, kann man in das Makro noch einen ZÄhler einbauen,
dass er mir am Ende die Anzahl der grün markierten Zellen ausgibt?
Vielen Dank
MFG
artur
Bild

Betrifft: AW: falscher vergleich
von: P@ulchen
Geschrieben am: 05.04.2005 17:11:50
Hallo Artur
eine Möglichkeit: https://www.herber.de/bbs/user/20722.xls
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Bild

Betrifft: Super,genau das ist es
von: artur
Geschrieben am: 05.04.2005 17:17:49
Hi Paulchen,
ich finde das immer wieder faszinierend was ihr mit VBA anstellen könnt.
Vielen DAnk nochmal!!!
Funktioniert wunderbar.
MFG
Artur
 Bild

Beiträge aus den Excel-Beispielen zum Thema "falscher vergleich"