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.

Excel vba Farb-Formatierung
#1
Hallo zusammen,

leider hänge ich schon wieder an einem Problem bei dem Ihr mir hoffentlich weiterhelfen könnt.
Ich möchte eine Tabelle so formatieren dass alle gleichen Zelleinträge mit der gleichen Hintergrundfarbe belegt werden. Die nachfolgenden (anderen) gleichen Werte sollen dann in einer anderen Farbe gekennzeichnet werden. Solange die Anzahl der gleichen Werte größer als 1 ist funktioniert das auch. Kommt aber nur ein Wert vor wird dieser nicht berücksichtigt.

Hie mal ein super Beispiel aus dem Netz
Code:
'Doppelte / gleiche Werte in Excel-Spalte farblich markieren
'angelehnt an: http://www.ms-office-forum.net/forum/sitemap/index.php?t-277131.html
Sub Doppelte_markieren_Spalte_D()
 
  Dim lngZeile As Long
  Dim lngEnde As Long
  Dim strValue As String
  Dim objDupList As Object
  Dim arrFarben As Variant
  Dim intFarben As Integer
 
  arrFarben = Array(35, 36)   'Aufzählung der ColorIndex-Werte entsprechend anpassen
 
  Set objDupList = CreateObject("Scripting.Dictionary")    'Liste der Duplikate (Key) mit ColorIndex (Item)
 
  lngEnde = Cells(Rows.Count, LinkCol).End(xlUp).Row
 
  Columns("A:D").Interior.ColorIndex = xlNone 'Alle Farben in Spalte A:D zurücksetzen
 
  For lngZeile = 1 To lngEnde
     strValue = Cells(lngZeile, "D").Text
     If strValue <> "" Then      'Test Zelle nicht Leer
     If Application.CountIf(Range("D1:D" & lngEnde), strValue) > 1 Then
        If objDupList.Exists(strValue) Then
           Range(Cells(lngZeile, "A"), Cells(lngZeile, "D")).Interior.ColorIndex = objDupList.Item(strValue)
        Else
           Range(Cells(lngZeile, "A"), Cells(lngZeile, "D")).Interior.ColorIndex = arrFarben(intFarben)
           objDupList.Add strValue, arrFarben(intFarben)
           intFarben = intFarben + 1
           If intFarben > UBound(arrFarben) Then intFarben = 0
        End If
     End If
  End If
Next
End Sub

Wie müsste man den Code ändern dass die Zeile 392 und 393 wieder abwechselnd farblich markiert werden und entsprechen ab 394 wieder die Farbe wechselt?


Tabelle1
D
389D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\BackUp\
390D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\BackUp\
391D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\BackUp\
392D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\Excel VBA\Aktienkurse einlesen\
393D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\Excel VBA\CSV-Dateien einlesen\
394D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\Excel VBA\Excel VBA allgemein\
395D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\Excel VBA\Excel VBA allgemein\
396D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\Excel VBA\Excel VBA allgemein\
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.08 einschl. 64 Bit



Ich hoffe ich konnte das Problem einigermaßen gut beschreiben und freue mich auf einen Tipp wie das Makro geändert werden sollte.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top
#2
Hallöchen,

du prüfst doch auch auf ...

If Application.CountIf(Range("D1:D" & lngEnde), strValue) > 1 Then

Dann werden natürlich nur Zeilen eingefärbt, die mehr als einmal vorkommen.

Lass die If-Zeile raus, oder prüfe auf > 0 ... macht natürlich keinen Sinn ... aber du siehst zumindest sofort ein Ergebnis ...
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
[-] Folgende(r) 1 Nutzer sagt Danke an Flotter Feger für diesen Beitrag:
  • sharky51
Antworten Top
#3
Hallo Sabina,

herzlichen Dank, funktioniert super....und so einfach.
Logik ist manchmal so ne Sache wenn man den Wald vor lauter Bäumen nicht sieht.

Habe jetzt die IF-Zeile raus genommen.

Nochmals vielen Dank, auch an dieses tolle Forum!
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antworten Top


Gehe zu:


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