ich bin mit den Excel-Befehlen zm Vergleichen von
Zelleneinträgen noch nicht so sehr vertraut und habe folgendes
Problem. Es soll ein Vergleich von möglichen „Werten“ (A, B,
H) in zwei Spalten vorgenommen werden und bei Übereinstimmung
‚wahr‘ bzw. ‚falsch‘ erscheinen.
Gibt es eine Möglichkeit, alle möglichen Kombinationen in
einer einzigen Abfrage zu prüfen? Einzeln geht das ja, aber
dann habe ich auch drei Spalten mit ‚wahr‘ und ‚falsch‘, die
ich wieder prüfen muß und dann kann ich die über 13.000
paarweisen Vergleiche in meiner Tabelle auch gleich per Hand
einzeln prüfen.
Extrem komfortabel wäre es dann auch noch, wenn im Fall einer
‚falsch‘-Aussage die Pärchen in den Spalten 1 und 2 z.B.
farbig markiert werden könnten, damit ich alle Abweichler auf
den ersten Blick erfassen kann. Ist das technisch machbar?.
Hallo Eva,
3 Schritte, sofern ich dein Anliegen richtig verstanden habe, 13000 Zeilen mit A o B oH in Spalte A und B kann ich mir zwar vorstellen, aber der Sinn fehlt mir noch*g
1.Schritt
Kopier dir folgende Formel in Zelle C1 und kopier sie dann nach unten:
=WENN(UND(A1="";B1="");"";WENN(ODER(A1=„A“;A1=„B“);WENN(A1=B1;„wahr“;WENN(ODER(B1=„A“;B1=„B“;B1=„H“);„falsch“;„Wert in B“&ZEILE()&" ist nicht A o B o H"));WENN(A1=„H“;WENN(ODER(B1=„A“;B1=„B“;B1=„H“);„wahr“;„Wert in B“&ZEILE()&" ist nicht A o B o H");„Wert in A“&ZEILE()&" ist nicht A o. B. oder H")))
Deine Tabelle müßte jetzt so aussehen:
Spalte 1 Spalte 2 Spalte 3
A A wahr
A B falsch
A H falsch
B A falsch
B B wahr
B H falsch
H H wahr
H A wahr
H B wahr
2:Schritt
Das entsprechende Tabellenblatt ist sichtbar.
Du betätigst Alt+F11, das VB-Editor Fenster geht auf. Oben wählst du Einfügen–>Modul
In das große weiße Fenster kopierst du folgendes hinein:
Sub markieren()
For i = 1 To ActiveSheet.Cells(65536, 3).End(xlUp).Row
If ActiveSheet.Cells(i, 3).Value "wahr" And ActiveSheet.Cells(i, 3).Value "" Then
ActiveSheet.Range(Cells(i, 1), Cells(i, 2)).Interior.ColorIndex = 8
End If
Next i
End Sub
Jetzt setzt du den Cursor an beliebiger Stelle in den gerade einkopiertewn Code und drückst einmal auf F5.
Mit Alt und F11 schaust du dir das Ergebnis in der tabelle an, alles wo nicht „wahr“ in Spalte C hat ist jetzt farblich unterlegt.
-
Schritt
wieder mit Alt und F11 in den VB-Editor wechseln.
Links auf „Tabelle1“ doppelt klicken. Jetzt geht wieder ein großes weißes Fenster auf, dorthin kopierst du den folgenden Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If ActiveSheet.Cells(Target.Row, 3).Value = „wahr“ Then
ActiveSheet.Cells(Target.Row, 1).Interior.ColorIndex = xlNone
ActiveSheet.Cells(Target.Row, 2).Interior.ColorIndex = xlNone
Else
ActiveSheet.Cells(Target.Row, 1).Interior.ColorIndex = 8
ActiveSheet.Cells(Target.Row, 2).Interior.ColorIndex = 8
End If
End Sub
Jetzt kannst du das VB-Editor Fenster schließen.
Erläuterung:
Die Formeln in der Tabelle sind dir mehr oder weniger *g klar, sie erzeugen in Spalte C ein „wahr“, „falsch“ oder eine Fehlermeldung, je nach Werten in Spalte A und B.
Das Makro markieren() was du ausgeführt hast markiert alle bestehenden Zellen in A und B wenn in C kein „wahr“ steht. Dieses Makro hast du ja schon in Schritt2 ausgeführt und brauchst es dann nie mehr.
In Schritt3 wird ein spezielles Makro installiert, was automatisch bei jeder zukünftigen Zelländerung in Spalte A oder B überprüft, ob in C „wahr“ steht, wenn nicht werden A und B farblich markiert.
Gruß
Reinhard