Hallo VBA Profis,
seit mehreren Stunden versuche ich nun, eine Code für folgendes Problem zu schreiben:
Meine Excel hat 2 Arbeitsblätter "Check" und "Temp":
In "Temp" sind in den Spalten A bis L eine beliebige Anzahl an Werten aufgelistet, welche ich vorher aus einer anderen Tabele extrahiere.
In "Check" sind in den Spalten A bis L von A1:L10 eine feste Anzahl an Werten aufgelistet, welche als Vorlage dienen.
Nun möchte ich überprüfen, ob jeder einzelne der extrahierten Werte einer Spalte (z.B. A) in "Temp" in der entsprechenden Spalte (A) in "Check" vorkommt. Wenn ein Wert aus "Temp" in "Check" gefunden wurde, soll seine Zelle grün markiert werden. Wenn nicht, soll die Zelle rot markiert werden. Dabei ist zu bedenken, dass die Anzahl der Werte in den Spalten in "Temp" variiert und leere Zellen nicht mehr berücksichtigt werden sollen. Dieser Vorgang soll für alle Spalten A bis L durchgeführt werden. Am Ende soll eine Messagebox mit 2 möglichen Inhalten erscheinen: "All values have been checked and are correct" (falls alle Werte in der Vorlage gefunden wurden) oder "Please check table manually" (falls mindestens 1 Wert nicht gefunden werden konnte).
Am Beispiel der Spalte A sieht es so aus:
Spalte A (Check)
Audi
BMW
Mercedes
Volkswagen
Peugeot
Citroen
Dacia
Range Rover
Ferrari
Lamborghini
Spalte A (Temp)
Citroen
Dacia
Lamborghini
Lamborghini
Audi
In diesem Fall würden alle Werte der Spalte A aus "Temp" in der Spalte A aus "Check" vorkommen und müssten entsprechend grün markiert werden.
Meine Überlegung war folgende: Ich beginne mit Spalte A in "Temp". Zunächst ermittle ich die letzte Zeile, welche noch einen Inhalt hat. Anschließend überprüfe ich über eine Schleife, ob jeder Wert in der Spalte A in "Temp" in der selben Spalte A in "Check" vorkommt (über Kombination aus ODER und IDENTISCH, VERGLEICHEN o.Ä.). Wenn dies der Fall ist, färbe ich die Zelle in "Temp" entsprechend und springe zur nächsten, bis ich die letzte zuvor ermittelte Zeile erreiche. Ist der Vorgang für Spalte A abgeschlossen, wiederhole ich das Ganze für B bis L.
Ich wäre für jegliche Hilfe unendlich dankbar!
Liebe Grüße und frohe Weihnachten,
Simon
|