Tabellen/Spalten vergleichen (VBA)

Martin Asal @, Mittwoch, 22.06.2016, 11:52 (vor 1246 Tagen) @ Rabia

Die erste Meldung soll eine Fehlermeldung sein, wenn in Tabelle2 Werte fehlen. Dabei sollen die in Tabelle1 mit Farbe gefüllten Zellen nicht beachtet also ausgelassen werden (Habe ich bei der ersten Nachricht nicht erwähnt).
Also wenn z.B. der Wert "2" in Tabelle1 mit Farbe gefüllt ist und das der einzige Wert ist der in Tabelle2 fehlt, soll eine Meldung "OKAY" erscheinen

OK, soweit klar. Ist ja auch einfach: Offensichtlich sind dir nur die Funktionen IsEmpty() sowie die Konstante vbNewLine nicht bekannt gewesen, um den Code nach deinen Vorstellungen selbst umzugestalten. Der folgende Code setzt das um, und wenn du ihn dir anschaust, wirst du feststellen, dass die Änderungen gegenüber der ersten Version minimal sind. So kommst du bestimmt schnell dahinter :-)

Sub vergleiche()
Dim BereichA As Range, ZelleA As Range
Dim BereichB As Range, ZelleB As Range
Dim Wert, AlleWerte
Dim Vergleich As Boolean
 
Set BereichA = ActiveWorkbook.Worksheets("Tabelle1").Range("A6:A20")
Set BereichB = ActiveWorkbook.Worksheets("Tabelle2").Range("B6:B20")
 
For Each ZelleA In BereichA
    If ZelleA.Interior.ColorIndex = xlColorIndexNone Then
        Wert = ZelleA.Value
        For Each ZelleB In BereichB
            Vergleich = False
            If ZelleB.Value = Wert Then
                Vergleich = True
                Exit For
            End If
        Next
        If Not Vergleich Then AlleWerte = AlleWerte & vbNewLine & Wert
    End If
Next
 
If IsEmpty(AlleWerte) Then
    MsgBox "OK!"
Else
    MsgBox "Es fehlt:" & AlleWerte
End If
End Sub
 

Dabei sollen die in Tabelle1 mit Farbe gefüllten Zellen nicht beachtet also ausgelassen werden

Als jemand aus der Datenbankecke wird mir ja immer schlecht, wenn ich lese, wie Excelianer eine krude Mischung aus Design und Content anstellen. Möglicherweise musst du die Zeile mit der Farbprüfung noch anpassen, z.B. nicht ColorIndex, sondern Color, und dann den RGB-Farbwert angeben. Kommt ganz auf deine Logik bei der Farbgestaltung an.

Wenn aber der Wert in Tabelle1 nicht gefüllt ist und es in Tabelle2 fehlt

Das verstehe ich immer noch nicht: "Nicht gefüllt" soll wohl "leere Zelle" heißen? Aber was immer du damit vorhast, solltest du leicht hinbekommen, wenn du auf IsEmpty(ZelleA.Value) prüfst.

Martin


gesamter Thread:

 RSS-Feed dieser Diskussion

powered by my little forum