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
Hallo joshua,

ich habe

a) Bei einem Exit zu beginn einer Gruppe das Maximum auf -9^9 gesetzt. Das wird hoffentlich nicht der maximale Wert in der Gruppe bleiben.

b) Falls die Gruppe nur eine Zeile hat, wird jetzt auch die Farbe aus Spalte K genommen.

c) Die Farbgebung der letzten Gruppe korrigiert.
Hallo ego!

Vielen Dank nochmal für deine Lösung.
Diese funktioniert nun nahezu perfekt.

Da "Exit" manchmal auch klein geschrieben wird, habe ich diese eine Variable Text = "Exit" deklariert und die Variable "Text" anschließend an den entsprechenden Stellen ausgetauscht.

Leider kommt es noch zu einem Fehler, sobald es innerhalb einer Nummerierung mehr als zwei "Exit" vorhanden sind.

So müsste hier A12:A14 die Farbe grün erhalten.


[url=
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Wie ist dieser Fehler nun zu beheben?
Anbei einmal die angepasste Beispieldatei


Beste Grüße
Und wo ist da angepasste Makro?
Hallo,

ich habe jetzt beim Prüfen auf "EXIT" die Funktion UCASE genutzt.
Helmut, ich bedanke mich!

Mit den aktuellen Datensätzen funktioniert es super.
Sollten sich weitere Probleme ergeben, so melde ich mich.


Ich habe den angepassten Code nicht in die Excel-Datei eingefügt, da diese Excel-Makro-Dateien für manchen ein Sicherheitsrisiko darstellen.
Ich hätte den Code natürlich auch direkt posten können.
Deine Variante mit UCASE gefällt mir aber viel besser.




Merci!
Hallo joshua,

Antwort auf die PN
Zitat:Ich habe nun mit zusätzlichem Code folgendes versucht zu definieren:
Code:
Code:
    Dim ZeileMax As Long
 
    ZeileMax = Cells(Rows.Count, "A").End(xlUp).Row
   
    Set rngListe = tblSummary.Range("A1:S" & ZeileMax)
Leider kommt dadurch der Fehler "Unverträgliche Typen" bei "dblMax = varListe(lngVonZeile, conSpMax)"
Gibt es noch eine Möglichkeit rngListe von der Länge her dynamisch zu gestalten?

1)ListObject
In dem code gibt es noch kein "ListObject" , sondern nur einen Bereich ("Range") mit Namen.

2) Erweiterung
Wenn du den benannten Bereich erweitern willst kannst du das entweder
a) explizit, indem du im Menu "Formeln" unter "Namensmanager" den neuen Bereich, für den der Name steht festlegst, oder
b) implizit, indem du Zeile/Spalten nach der ersten und vor der letzten Zeile/Spalte einfügst.

3) Zu deiner Änderung
Ich versuche in meinen  Programmen zu vermeiden Adressen fest einzutragen ( Wie dein "A1:S"). Ich kann dadurch die auszuwertenden Bereiche beliebig in der Datei positionieren und auch Einträge neben und unter den auszwertenden Daten schreiben.

4) Zu deinem Fehler
Ich nehme an, dass deine Liste Überschriften hat, in denen Texte sind. Wenn du darauf bestehst die Adresse fest einzutragen solltest du "A2:S" nutzen.
Stimmt, der Fehler lag den der Definiton der Bereiches ab A1.
Mit folgender Lösung habe ich eine variable Lösung:

Code:
   ZeileMax = Cells(Rows.Count, "A").End(xlUp).Row
   
       Set rngListe = tblXXX.Range("A2:S" & ZeileMax)
Wie würdest du es nun gestalten, wenn die Tabelle immer einer unterschiedliche Länge besitzen?
Hallo joshua,

siehe Punkt 2) meiner letzten Bemerkung und meine Signatur.
Seiten: 1 2