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.

Zeile abwechselnd färben bei nächstem Artikel
#1
Hallo,

ich habe eine Liste mit Messpunkten zu unterschiedlichen Artikeln.
Da mal mehr und mal weniger Messpunkte zu den Artikeln vorhanden sind, möchte ich gerne zur Verbesserung der Übersichtlichkeit die Zeile irgendwie einfärben.

   

Also das sich die Farbe wieder ändert wenn B sich ändert.

Gibt es da eine Möglichkeit?  Eine manuelle Färbung wäre nur Bedingt eine Lösung, da der Inhalt der Tabelle sich immer mal zwischendurch ändern kann.

MfG Mario
Grüße Mario  Angel
Antworten Top
#2
Es wäre hilfreich zu wissen ob es eine Begrenzte und festgelegte Menge an Bezeichnungen gibt

Wenn es nur eine begrenzte Anzahl von Bezeichnungen gibt, dann könntest Du z.Bsp. mit der bedingten Formatierung angeben, bei welcher Bezeichnung welche Farbe für die Zeile hinterlegt werden soll. Wenn das aber sehr viele Bezeichnungen sind, ist die Variante nicht sinnvoll.

Event könntest du eine Hilfsspalte eintragen die Prüft ob die Zeile vorher den gleichen Bezeichner hat.
Dann würdest du die ersten Zeilen in der Hilfsspalte z.Bsp mit einer 1 versehen, sobald der Bezeichner ein anderer ist als in der Zelle darüber eine 2 usw. Danach wieder eine 1. Das lässt sich relativ einfach über eine Wenn Abfrage realisieren.
Und dann wieder bedingte Formatierung. Wenn Hilfspalte / Zelle = 1 dann Farbe 1, wenn 2 dann Farbe 2. Zu guter letzt noch die Hilfsspalte ausblenden.

Kommst Du mit der Anleitung klar?

Gruß
Statler
Antworten Top
#3
Hallo, ich habe jetzt schon 43 verschiedene, und werden regelmäßig mehr.

Aber das mit der Hilfsspalte probiere ich mal.
Grüße Mario  Angel
Antworten Top
#4
Hallo Mario,

dazu braucht man keine Hilfsspalte und dergleichen. Die Anzahl der Begriffe spielt auch keine Rolle. Versuche es mal mit diesem Makro, (ist einer meiner Jugendsünden, geht bestimmt einfacher und kürzer).

Code:
Sub färben2()
' färbt Tabellenzeilen abhängig vom Inhalt einer Spalte ein
' Klaus-Dieter Oppermann
z = 2                                       ' Startzeile für Schleife(hier 2)
m = 0                                       ' Farbe für 1. Gruppe (0 = keine, 1 = grau)
Do While Cells(z, 1) <> ""                  ' Bedingung für Schleife (laufe solange Zelle
                                            ' einen Inhalt hat)
    If Cells(z, 1) <> Cells(z - 1, 1) Then  ' Wenn Zelle <> vorherige ...
        m = m + 1                           ' ... Schleifenzähler um 1 erhöhen
        ' m gerade Zahl?
        mark = Int(m / 2)                   ' ... Variable durch 2 teilen ...
        mmark = mark * 2                    ' ... und mit zwei multiplizieren
    End If                                  ' Ende Bedingung
' Zellen färben, wenn m gerade Zahl
If mmark = m Then                           ' wenn Variable = Schleifenzähler ...
    Range("A" & z, "F" & z).Select          ' ... Zellen selektieren
    With Selection.Interior                 ' ... Hintergrund füllen
        .ColorIndex = 15                    ' ... Füllfarbe grau
        .Pattern = xlSolid                  ' ... durchgehende Fläche
    End With                                ' Ende färben
End If                                      ' Ende färben
z = z + 1                                   ' Schleifenzähler
Loop                                        ' Wendepunkt für Schleife
End Sub                                     ' Ende des Makros
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • d'r Bastler
Antworten Top
#5
Hallo Klaus-Dieter,

durch die sofort im Code sichtbaren ausführlichen Step-by-step-Kommentare erst einmal etwas überrascht und abgelenkt, habe ich dann Deine Einleitung erst als zweites gelesen und das Stichwort Jugendsünde entdeckt. So sauber kommentierten Code findet man in den Foren nur selten. Klasse und Danke! Thumps_up

Schöne Grüße

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top
#6
Danke Klaus-Dieter,


funktioniert so wie ich wollte, nur musste ich doch die EDV Nummer in Spalte A verlegen, Oder kann man in dem Code einstellen das er Spalte B benutzen soll?

Aber auf jeden Fall funktioniert es so, danke.
Grüße Mario  Angel
Antworten Top
#7
Hallo Mario,


Zitat:funktioniert so wie ich wollte, nur musste ich doch die EDV Nummer in Spalte A verlegen, Oder kann man in dem Code einstellen das er Spalte B benutzen soll?



dazu brauchst du nur die Spaltenbezüge (rot gekennzeichnet) von 1 auf 2 ändern.  Cells(Z, 1)

@ d'r Bastler: Danke für die Blumen, wenn es die Zeit erlaubt, mache ich das öfter. (Hilfe zur Selbsthilfe)

b
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#8
hmm, naja hatte das auch probiert, aber wohl eins vergessen, da das nicht so recht funktionierte.

Nochmal Danke.
Grüße Mario  Angel
Antworten Top
#9
Hallo zusammen,

hier ein verbesserter Stand:

Code:
Sub färben3()
    ' färbt Tabellenzeilen abhängig vom Inhalt einer Spalte ein
    ' Klaus-Dieter Oppermann
   
    ' Variablen deklarieren
    Dim lngZeile As Long                                                ' Zähler für Schleife
    Dim mark As Integer                                                 ' Zähler zum Umfärben
    Dim mark2 As Integer                                                ' Kennung für Farbwechsel
    Dim farb As Variant                                                 ' Farbe definieren
    For lngZeile = 2 To Range("A1").End(xlDown).Row                     ' Laufe von Zeile 2 bis Listenende
        If Cells(lngZeile, 1) <> Cells(lngZeile - 1, 1) Then            ' wenn neuer Wert, ...
            mark = mark + 1                                             ' ... Zähler plus 1
            mark2 = mark Mod 2                                          ' ... Nullwert erzeugen
        End If                                                          ' Ende Auswahl
        If mark2 = 0 Then farb = 10213316 Else farb = xlNone            ' Farbe für Zeile(n) festlegen
        Range("A" & lngZeile, "F" & lngZeile).Interior.Color = farb     ' Zeile färben
    Next lngZeile                                                       ' nächste Zeile
End Sub
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#10
Hallo,

versuche es mit diesem Makro.

Bei aktiver Änderung eines Wertes in Spalte A wird das Makro ausgeführt. Es ist im Tabellenblatt im Blattnamen unter "Code anzeigen"
zu finden

Gruß Rudi


Angehängte Dateien
.xlsb   Zeilen färben.xlsb (Größe: 15,87 KB / Downloads: 4)
Antworten Top


Gehe zu:


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