Hallo, ich habe ein kleines Problem zu lösen, welches ich im Folgenden hoffentlich einigermaßen verständlich beschreiben kann.
Ich hab habe eine Tabelle mit Datensätzen in Zeilenform. In der 1.Spalte befindet sich eine Artikelnummer. In der 2.-6. Spalte befinden sich verschiedene Referenzcodes, maximal einer pro Spalte, manchmal sind aber auch einige Spalten nicht gefüllt. Da es nun verschiedene Artikelnummern gibt, die auf zum Teil gleiche Referenzcodes zurückgreifen, würde ich diese Referenzcodes gerne farblich kennzeichnen. Und zwar sollte jede Zelle in der ein Code (bspw. "RF123") auftritt, mit der gleichen Farbe eingefärbt werden. Es ist möglich, dass der gleich Code bei verschiedenen Artikelnummern in unterschiedlichen Spalten vorkommt. Beispielsweise steht der Code "RF123" beim 1. Artikel in Spalte 2, beim 2. Artikel in Spalte 4 und beim 3. Artikel kommt er gar nicht vor.
Das manuelle einfärben, bzw über bedingte Formatierung fällt bei mir leider weg, da ich knapp 50.000 Datensätze farblich zu kennzeichnen habe. Da ich mit VBA noch eher unerfahren bin, würde ich als erstes gerne meine grundlegende Strategie vorstellen, wie ich das Problem zu lösen gedenke. Vielleicht könnt ihr mir ja kurz kommentieren, ob dies mit VBA so überhaupt möglich ist, bzw. ob es einfachere Lösungsmöglichkeiten gibt, die mir spontan nicht einfallen.
Ich würde gerne die Inhalte aller Referenzcode-Spalten in ein eindimensionales Array schreiben. Anschließend sollten alle Duplikate in diesem Array entfernt werden. Als nächstes schreibe ich die verbliebenen Referenzcodes als Key in ein Dictionary, über eine weitere Schleife werden als zugehörige Items RGB Farbwerte ins Dictionary geschrieben. (Hier reicht es, wenn es insgesamt 20 verschiedene Farben gibt, dass die Artikelnummern so sortiert sind, dass ca. 20 - 50 aufeinanderfolgende Zeilen auf die gleichen Referenzcodes verweisen können).
Die Spalten 2-6 gleiche ich nun mit diesem Dictionary ( Referenzcode, Farbwert) ab. Immer wenn der Inhalt einer Zelle im Dictionary gefunden wird, soll der zugehörige RGB Farbwert der Zelle als Hintergrundfarbe zugewiesen werden.
Mich würde sehr interessieren, was ihr von dieser Vorgehensweise haltet. Vielen Dank schonmal!
Lucas
|