Clever-Excel-Forum

Normale Version: Verzweigte Schleife zum Kopieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ich sitze hier zwar vor einem trivialien, jedoch für mich komplexen Thema, da ich nicht weiß, wie ich die Schleifen miteinander verbinden bzw. bilden soll.

Spalte B (Key1) bildet eine Klasse, auf der aufbauend in Spalte A (Key2) numerisch sortiert wird. Innerhalb dieser Zahl (Spalte A) soll nun folgendes passieren: (Es kann jedoch vorkommen, dass wenn Key1 sich direkt in der nächsten Zeile ändert, dass die Numerierung von neuem anfängt)

Steht innerhalb dieser Zahl in Spalte S überall "100", so kopiere die Farbe von der Zelle R, welche in H den höchsten Wert hat, nach A und vererbe/ kopiere diese in die restlichen Zellen innerhalb der Zahl in Spalte A. Ansonsten kopiere die Farbe von K nach A und vererbe diese wieder.

Ich habe hier noch ein Bild. Ist es für euch verständlich genug formuliert, oder braucht ihr andere Informatione/ Ansätze?
[url=
Dateiupload bitte im Forum! So geht es: Klick mich!
]
Hallo joshua,

ich nehme an, das du die Farbgebung über VBA lösen möchtest. Mit Formeln könnte ich es nicht.

Du kannst die Liste sequenziell lesen und dabei nachhalten:

a) für welche Zeilen sich die ersten zwei Spalten nicht ändern (von,bis),
b) ob alle Werte in Spalte S 100 sind und
c) in welcher Zeile sich der höchste Wert in Spalte H befindet.

Sobald sich ein Wert in den ersten beiden Spalten ändert kannst du die Formatierung der vorherigen Zeilen (von,bis) nach deinen Vorgaben durchführen und die notwendigen Vergleichsvariablen für den neuen Bereich initialisieren.
Vielen Dank für die Antwort. Leider komme ich damit nicht ganz so weiter.
Könnten Wir das Schritt für Schritt zusammen erstellen?
Hallo,

wie wäre es mit einer Tabelle als Muster?
Tut mir leid, dachte ich hätte eine angehangen.
Anbei nochmal eine Beispieldatei
Hallo joshua,

die gefärbten Spalten in der Datei passen nicht zu den Spalten in deiner Beschreibung. Ich hab in dem Beispiel die gefärbten Spalten der Datei genutzt.
Ego, ich bedanke mich!

Ich habe leider erst Ende der Woche wieder die Möglichkeit deinen Code auszuprobieren. 
Ich melde mich nochmal.
Hallo nochmal!
Dein Ansatz funktioniert super, leider habe ich vollkommen eine weitere Bedingung bzw. einen Key zum Sortieren vergessen :(
Ebenfalls muss ich die Spalten umstrukturieren.

Tut mir Leid Leute :/

Ich habe euch nun eine neue Musterdatei hochgeladen. Auf dem folgenden Foto erkennt man bereits die Struktur.
[url=
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Jedes Exit in Spalte J bildet bis zum nächsten Exit jeweils eine Klasse/ Gruppe.
Es soll nun geprüft werden, ob innerhalb dieser Klasse jeweils alle Werte in Spalte S bei 100 liegen. Ist dies der Fall, so kopiere die Farbe von Spalte R der Zeile mit dem höchsten Wert in I nach A. Diese Farbe soll dann in A bis zur Zeile nach oben vererbt werden, die Exit in Spalte J enthält.
Enthalten innerhalb dieser Klasse nicht alle den Wert 100, so kopiere die Farbe von Spalte K, in dessen Zeile Exit steht nach A und kopiere innerhalb A nach unten bis zur nächsten Zelle, die in Spalte J ein Exit enthält.
Hallo joshua,

zuerst einige Anmerkungen:

a) Es wäre für mich einfacher gewesen, wenn du das neue Format in die Datei mit dem schon geschriebenen Makros geändert hättest.

b) In deinem letzten Beispiel haben alle Zeilen einer Gruppe in Spalte K die gleiche Farbe. Deine Bedingung:

Zitat:Ansonsten kopiere die Farbe von K nach A und vererbe diese wieder
hatte ich so verstanden und umgesetzt, dass die Farbe der ersten Zeile einer Gruppe genommen werden sollte.
Oder sollte die Farbe der gleiche Zeile genutzt werden? Das ist zwar im Beispiel gleich, könnte aber bei einer Überarbeitung eine Rolle spielen.

jetzt zum Makro

a) Der Bereich, der ausgewertet werden soll muss zur Zeit den Namen "Liste" haben.

b) Ich habe die Spalten innerhalb der Liste für die Farben und die Wertvergleiche am Anfang des Programms in Konstanten geschrieben. (Zeilen beginnend mit "const").
Falls sich der Aufbau der Liste noch einmal  ändert (zB Spalten hinzukommen), brauchst du nur die Konstanten anpassen.
Hallo ego,

vielen Dank für deine Antwort und Lösungen!

Tut mir leid, dass ich ein komplett neues Format/ Tabelle nun benutzt habe.

Das ist richtig, jedes Exit in Spalte J bildet bis zum nächsten Exit jeweils eine Klasse, egal wie viele leere Zeilen dadrunter liegen. Entsprechend ist die Farbe auch gleich, wie du sagst.
Es soll jeweils die Zellenfarbe genommen werden, wo auch Exit in der Zeile enthalten ist.

Ok, da die Tabelle als Template benutzt wird und über einen Call die einzelnen Prozeduren für die neuen Datensätze abgelaufen werden, werde ich wahrscheinlich meine UsedRange jeweils als "Liste" betiteln müssen. Ist dies richtig?

Vielen dank, dass du mir eine Adaption der Prozedur über Konstante vereinfachst.


Die Prozedur funktioniert noch nicht bei zwei Fällen:
Gibt es ein Exit ohne eine weitere Zeile, so passiert nichts. Hier sollte die Farbe von K nach A kopiert werden.

Tut mir Leid, dass ich mich zu ungenau ausgedrückt habe.
Falls alle Zeilen den Wert 100 in Spalte S besitzen, so soll die Farbe von Spalte R nach A kopiert werden, aus der Zeile die den höchsten Wert in Spalte I hat. Das tut es auch. hierbei soll jedoch nicht die Zeile mit Exit in betracht gezogen werden.
Wie kann ich nun diese Zeile in deiner Prozedur ausschließen?
Vielleicht ist es über "<> "Exit" " möglich, verliere aber gerade den Überblick im Code.




Nochmals, vielen Dank ego!


Beste Grüße
Seiten: 1 2