Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen nach ident. Werten absuchen und einfärben | Herbers Excel-Forum


Betrifft: Zellen nach ident. Werten absuchen und einfärben von: RollWeb
Geschrieben am: 16.12.2009 11:44:13

Hallo

Ich habe dieses "Problem" gestern bereits im Office-Loesung-Forum gepostet, bis jetzt aber leider noch keinerlei Antworten erhalten. Hoffe, dass ich hier mehr Glück habe.

Folgendes würde ich gerne mit einem Makro lösen (denke mit Formeln ist das so nicht umsetzbar...?):

Über mehrere Excel-Sheets (alle im gleichen Excel-File) sind in unterschiedlichen Zellen unterschiedliche Werte verteilt. Die Werte können reine Zahlen sein (z.B. 1, 2, 999, 1000, ect.), reine Buchstaben (z.B. AA, BB, CC, etc.) oder Buchstaben-Zahlenkombinationen inkl. "Punke" (z.B. 1a, 2b, 4.5c, ect.).
Wäre es möglich, dass alle Werte, welche die gleichen Kriterien (werde dies gleich noch ausführlicher erläutern) erfüllen, mit z.B. grüner Farbe merkiert werden und diejenigen, welche die Kriterien nicht erfüllen, rot?

Konkret:

Auf "Sheet 1" (Sheetname sollte im Makro selber einfach anpassbar sein) stehen ab der Zelle A5 (A5 abwärts: sollte aber möglich sein die jeweiligen "Startzellen" (auch die nachfolgend aufgezählten) im Makro selber einfach zu ändern) reine Zahlen (1, 2, 999, ect. Diese Zahlen stellen die Anzahl der Werte dar, welche sich in den Zellen ab Spalte E (nach hinten gerechnet, also ab E bis IV, finden)). Die folgende Aufzählung betrifft immer "Sheet 1" gilt aber auch für "Sheet 2", "Sheet 3" bis "Sheet n":

- ab Zelle B5 stehen jeweils reine Buchstaben (AA, BB, XY, etc.).
- ab Zelle C5 stehen jeweils reine Zahlen (2007, 2008, 2009, ect.).
- ab Zelle D5 stehen jeweils reine Zahlen (4, 10, 999, ect.).
- ab Zelle E5 (und ab hier nicht nur nach unten, sondern auch nach hinten, also auch in Zelle F5, G5, H5... bis IV5) stehen jeweils Buchstaben-Zahlenkombinationen (1a, 2.2b, 45.6c, etc.).

Der Aufbau von "Sheet 2" ist identisch mit demjenigen von "Sheet 1". Das gleiche gilt für "Sheet 3" ... "Sheet n". Alle "Sheets" welche miteinander verglichen werden sollen (die Namen der zu vergleichenden Sheets sollten im Makro anpassbar sein) sind gleich aufgebaut (gleiche Spaltenüberschriften, gleiche Spaltenverteilung, etc.), haben aber in ihren Zellen unterschiedliche Werte.

Jetzt kommen wir zum springenden Punkt:

Die Werte auf den einzelnen Sheets sollen miteinander vergleichen werden, und zwar so, dass ein Eintrag, der auf "Sheet 1" wie folgt aussieht: Code:

  • A ¦ B ¦ C ¦ D ¦ E ¦ F ¦ ... ¦ M
    ---------------------------------------------------
    5 ¦ 9 ¦ AA ¦ 2009 ¦ 5 ¦ 1a ¦ 2.5b ¦ ... ¦ 55.5c
    6 ¦
    7 ¦
    8 ¦


  • nur dann grün markiert wird, wenn auch er auch auf "Sheet 2", "Sheet 3" ... "Sheet n" gefunden wird (wenn es identische Werte gibt). Es muss nicht zwingend sein, dass der Eintrag von Zeile 5 auf "Sheet 1" z.B. auf "Sheet 2" auch in Zeile 5 auftaucht, er könnte auch auf der Zeile 100 auftauchen. Die Reihenfolge der Werte "2", "AA", "2009" und "5" wird dabei nicht ändern, also "2" wird immer in Spalte A stehen, "AA" immer in Spalte B, "2009" immer in Spalte C und "5" immer in Spalte "D". Es kann aber sein, dass der Wert, der auf "Sheet 1" in der Zelle E5 steht (1a) auf "Sheet 2" in der Zelle M5 steht und der Wert von Zelle M5 auf "Sheet 1" (55.5c) dafür auf "Sheet 2" in Zelle E5. Was allerdings zwingend ist, die Einträge müssen auf jedem Sheet, also von "Sheet 1" bis und mit "Sheet n" auftauchen. (Anmerkung: Die Zahl "9" in der Zelle A5 besagt, dass es ab Zelle E5 bis M5 zusammengezählt neun Zellen mit einem Wert gibt.)

    Noch ein bisschen anders ausgedrückt:

    If

    der Wert der Zelle A5 (9) auf "Sheet 1" auch auf "Sheet 2", "Sheet 3", "Sheet n" gefunden wird (bspw. auf "Sheet 2" in Zelle A100, auf "Sheet 3" in der Zelle A33 und auf "Sheet n" in der Zelle A999), then

    next if

    Wert der Zelle B5 (AA) auf "Sheet 1" auch in der entsprechenden Zelle auf den anderen Sheets (müsste dann auf "Sheet 2" in der Zelle B100, auf "Sheet 3" in der Zelle B33 und auf "Sheet n" in der Zelle B999 gefunden werden), then

    next if

    Wert der Zelle C5 (2009) auf "Sheet 1" auch in der entsprechenden Zelle auf den anderen Sheets (müsste dann auf "Sheet 2" in der Zelle C100, auf "Sheet 3" in der Zelle C33 und auf "Sheet n" in der Zelle C999 gefunden werden), then

    next if

    Wert der Zelle D5 (5) auf "Sheet 1" auch in der entsprechenden Zelle auf den anderen Sheets (müsste dann auf "Sheet 2" in der Zelle D100, auf "Sheet 3" in der Zelle D33 und auf "Sheet n" in der Zelle D999 gefunden werden), then

    next if

    Wert der Zelle E5 (1a) auf "Sheet 1" auch in der entsprechenden Zeile auf den anderen Sheets (müsste dann auf "Sheet 2" in der Zeile 100, auf "Sheet 3" in der Zeile 33 und auf "Sheet n" in der Zeile 999 gefunden werden), then

    next if

    Wert der Zelle F5 (2.5b) auf "Sheet 1" auch in der entsprechenden Zeile auf den anderen Sheets (müsste dann auf "Sheet 2" in der Zeile 100, auf "Sheet 3" in der Zeile 33 und auf "Sheet n" in der Zeile 999 gefunden werden), then

    next if

    ...

    next if

    Wert der Zelle IV5 (xxxx) auf "Sheet 1" auch in der entsprechenden Zeile auf den anderen Sheets (müsste dann auf "Sheet 2" in der Zeile 100, auf "Sheet 3" in der Zeile 33 und auf "Sheet n" in der Zeile 999 gefunden werden)...

    Wenn für alle Werte auf den entsprechenden Zeilen und in den entsprechenden Zellen (wo es eine eindeutige Zellzuordnung gibt) eine Übereinstimmung gefunden wurde, dann sollen sie grün eingefärbt werden.

    Kurz:

    Die Werte in den Spalten A, B, C und D werden auf jedem Sheet am gleichen Ort stehen, also auch in den Spalten A, B, C und D (einfach in unterschiedlichen Zeilen). Die Werte ab der Spalte E können auf den unterschiedlichen Sheets auch in unterschiedlichen Spalten stehen.

    Nochmals ein Beispiel:

    Auf "Sheet 1" steht in der Zeile 5:


  • A ¦ B ¦ C ¦ D ¦ E ¦ F ¦ ... ¦ M
    ---------------------------------------------------
    5 ¦ 9 ¦ AA ¦ 2009 ¦ 5 ¦ 1a ¦ 2.5b ¦ ... ¦ 55.5c
    6 ¦
    7 ¦
    8 ¦


  • auf "Sheet 2" steht in der Zeile 100:


  • A ¦ B ¦ C ¦ D ¦ E ¦ F ¦ ... ¦ M
    ---------------------------------------------------
    99 ¦
    100 ¦ 9 ¦ AA ¦ 2009 ¦ 5 ¦ 55.5c ¦ 2.5b ¦ ... ¦ 1a
    101 ¦
    102 ¦


  • Man beachte: Der Wert, welcher auf "Sheet 1" in Zelle E5 steht, der steht auf "Sheet 2" in der Zelle M5.
    Wenn man davon ausgeht, dass dort, wo "..." steht sowohl auf "Sheet 1" als auch auf "Sheet 2" die gleichen Werte stehen, dann müsste die ganze Zeile nun grün eingefärbt werden.

    Kommen wir nun zu einem Fall, in welchem nicht alle Werte übereinstimmen:

    Auf "Sheet 1" steht in der Zeile 6:


  • A ¦ B ¦ C ¦ D ¦ E ¦ F ¦ G
    ------------------------------------------------
    5 ¦
    6 ¦ 3 ¦ XY ¦ 2009 ¦ 8 ¦ 9d ¦ 6.3b ¦ 99qtx
    7 ¦
    8 ¦


  • auf "Sheet 2" steht in der Zeile 113:


  • A ¦ B ¦ C ¦ D ¦ E ¦ F ¦ G
    ------------------------------------------------
    112 ¦
    113 ¦ 3 ¦ XY ¦ 2009 ¦ 8 ¦ 6.3b ¦ 99qtx ¦ 9c
    114 ¦
    115 ¦


  • Bei diesem Beispiel stimmen zwar die Werte in Zellen A6 und A113, B6 und B113, C6 und C113, D6 und D113, F6 und E113, G6 und F113 überein, aber die beiden übrig bleibenden Zellen (da es hier nur 3 Buchstaben-Zahlenwerte hat (vgl. auch die Zahl "3" in den Zellen A6 auf "Sheet 1" und A113 auf "Sheet 2" für die Anzahl der Werte ab Spalte E) (kein "..." wie im Beispiel weiter oben)), E6 und G113 stimmen nicht überein. In E6 steht "9d" und in G113 "9c". In einem solchen Fall sollten dann nur diejenigen Zellen grün eingefärbt werden, welche übereinstimmen, d.h. für welche es in den beiden in Frage kommenden Zeilen (Zeile 6 auf "Sheet 1" und Zeile 113 auf "Sheet 2") einen entsprechenden identischen Wert gibt (dies wären A113, B6 und B113, C6 und C113, D6 und D113, F6 und E113, G6 und F113). Die beiden Zellen (E6 und G113) welche nicht übereinstimmen (wo es keine übereinstimmenden Werte in den beiden in Frage kommenden Zeilen gibt) sollten eine rote Farbe bekommen.

    Ist es möglich ein Makro zu programmieren, dass all die aufgezählten Punkte bewältigen kann? Falls ja, hätte evtl. jemand von euch eine Lösung oder wenigstens Lösungsansätze?

    Das war jetzt ziemlich viel Text. Ich hoffe aber trotzdem, dass ihr schlau aus meinen Ausführungen werdet. Falls jemand Fragen hat, einfach posten.

    Für Antworten bedanke ich mich bereits schonmal im Voraus.

    Beste Grüsse

    RollWeb

      

    Betrifft: bevor ich das alles durchlese... von: Björn B.
    Geschrieben am: 16.12.2009 11:55:17

    ... wie wäre es mit einer EINFACHEN!!! Beispieldatei?

    Hallo RollWeb,

    ich lese keinen Roman, um rauszufinden, ob ich dir überhaupt helfen kann.
    Habe jetzt nicht alles gelesen, aber du machst zig Beschreibungen, wie Deine Mappe und Deine Makros aussehen...warum lädst du die nicht hoch?
    Soll sich hier jetzt einer hinsetzen und nach Deinen Textangaben die Mappe nachbauen???
    Ich glaube, das macht keiner freiwillig.

    bis jetzt aber leider noch keinerlei Antworten erhalten. 

    Warum wohl...

    Versuch doch mal, Dein Anliegen etwas knapper zu formulieren.

    Gruß
    Björn B.


      

    Betrifft: AW: bevor ich das alles durchlese... von: RollWeb
    Geschrieben am: 16.12.2009 12:00:15

    Hallo Björn

    Der Grund für die Ausführlichkeit ist, dass ich mein Problem möglichst gut beschreiben wollte (hat auch ne ganze Weile gedauert, bis ich alles aufgeschrieben habe). Ich werde mich aber gleich ransetzen und eine Version meines bisherigen Excel-Files so weit vorzubereiten, dass ich es hier hochladen kann.

    Gruss


      

    Betrifft: AW: bevor ich das alles durchlese... von: RollWeb
    Geschrieben am: 16.12.2009 13:05:55

    Leider ist es mir aus unerklärlichen Gründen nicht möglich einen Text hier reinzukopieren, welchen ich zuvor in Word geschrieben habe. Ich bekomme immer eine Fehlermeldung, dass das Forum hier ein Problem mit der Darstellung hat... Er enthält Anmerkungen zum Excel-File.

    Hier aber mal der Link zum Excel-File:
    https://www.herber.de/bbs/user/66629.xls


      

    Betrifft: AW: bevor ich das alles durchlese... von: RollWeb
    Geschrieben am: 16.12.2009 13:09:50

    Leider klappt es einfach nicht mit dem Text, deshalb hier das Wod-Dokument zum downloaden:

    https://www.herber.de/bbs/user/66632.doc


      

    Betrifft: Ich habe soeben festgestellt, ... von: werni
    Geschrieben am: 16.12.2009 14:57:07

    dass du wohl schreiben, aber nicht lesen kannst.

    Hi

    Du hast ein Excelproblem. Also lade eine abgespeckte Version vom was du schon hast auf den Server.

    Gruss Werner


      

    Betrifft: Das hat er ja 1 höher, Werni, viell sogar zu... von: Luc:-?
    Geschrieben am: 16.12.2009 15:12:09

    ...abgespeckt, kann ich aber momentan nicht so recht überprüfen, weil OO3.0 zwar einen VBASupport besitzt, aber irgendwie beim Ausführen nichts zu passieren scheint...
    Gruß Luc :-?


      

    Betrifft: AW: Das hat er ja 1 höher, Werni, viell sogar zu... von: RollWeb
    Geschrieben am: 16.12.2009 15:19:21

    Hallo

    @Werni: Ich kann sehr wohl lesen... Wie Luc bereits geschrieben hat: Das Excel-File findest Du 1 Post darüber.

    Gruss
    RollWeb


      

    Betrifft: ...und dann wohl doch wieder 'ne Menge... von: Luc:-?
    Geschrieben am: 16.12.2009 15:19:36

    ...Wünsche aufgeschrieben, ohne dass dazu schon was da wäre... Also wirklich „zu abgespeckt“... ;-)
    Luc :-?


      

    Betrifft: AW: ...und dann wohl doch wieder 'ne Menge... von: RollWeb
    Geschrieben am: 16.12.2009 15:54:53

    Das Problem ist, dass ich keine Ahnung habe, wie ich ein solchen Makro aufbauen müsste, damit es "gewünschten Funktionen" ausführen kann...


    Beiträge aus den Excel-Beispielen zum Thema "Zellen nach ident. Werten absuchen und einfärben"