Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Verzweigte Schleife zum Kopieren
#1
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!
]
Antworten Top
#2
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.
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#3
Vielen Dank für die Antwort. Leider komme ich damit nicht ganz so weiter.
Könnten Wir das Schritt für Schritt zusammen erstellen?
Antworten Top
#4
Hallo,

wie wäre es mit einer Tabelle als Muster?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Tut mir leid, dachte ich hätte eine angehangen.
Anbei nochmal eine Beispieldatei


Angehängte Dateien
.xlsx   Muster1.xlsx (Größe: 9,61 KB / Downloads: 4)
Antworten Top
#6
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.


Angehängte Dateien
.xlsm   Muster1.xlsm (Größe: 24,76 KB / Downloads: 3)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • joshua
Antworten Top
#7
Ego, ich bedanke mich!

Ich habe leider erst Ende der Woche wieder die Möglichkeit deinen Code auszuprobieren. 
Ich melde mich nochmal.
Antworten Top
#8
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.


Angehängte Dateien
.xlsx   Beispielmappe.xlsx (Größe: 50,24 KB / Downloads: 2)
Antworten Top
#9
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.


Angehängte Dateien
.xlsm   Beispielmappe.xlsm (Größe: 62,63 KB / Downloads: 2)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste