Verzweigte Schleife zum Kopieren
#11
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.


Angehängte Dateien
.xlsm   Beispielmappe.xlsm (Größe: 62,67 KB / Downloads: 9)
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
Top
#12
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


Angehängte Dateien
.xlsx   Beispielmappe.xlsx (Größe: 51,17 KB / Downloads: 4)
Top
#13
Und wo ist da angepasste Makro?
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.





Top
#14
Hallo,

ich habe jetzt beim Prüfen auf "EXIT" die Funktion UCASE genutzt.


Angehängte Dateien
.xlsm   Beispielmappe-4.xlsm (Größe: 63,44 KB / Downloads: 4)
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.





Top
#15
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!
Top
#16
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.
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.





Top
#17
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?
Top
#18
Hallo joshua,

siehe Punkt 2) meiner letzten Bemerkung und meine Signatur.
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.





Top


Gehe zu:


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