Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wenn, dann einfärben --> VBA

Forumthread: Wenn, dann einfärben --> VBA

Wenn, dann einfärben --> VBA
Tom
Hallo,
ich möchte einige Zeilen farbig markieren - allerdings nicht mit "Bedingter Formatierung" sondern durch VBA, da die Zellen immer neu einkopiert werdenund dadurch die bedingte Formatierung gelöscht wird!!!
- Eine Zeile soll von A-Q gelb markiert werden, wenn in der gleichen Zeile in Zelle C folgende Werte stehen "Meier" "A.Meier" "C.Meier".Allerdings können diese Werte mehrmals in der Tabelle vorkommen
- Eine Zeile soll von S-AI gelb markiert werden, wenn in der gleichen Zeile in Zelle U folgende Werte stehen "Meier" "A.Meier" "C.Meier".Allerdings können diese Werte mehrmals in der Tabelle vorkommen
Danke vorab
Tom
Anzeige
AW: Wenn, dann einfärben --> VBA
y
hi Tom,
probier mal:

Sub gelb()
Dim lngi As Long
Dim intZaehler As Integer
Dim strSuche(2) As String
strSuche(0) = "Meier"
strSuche(1) = "A.Meier"
strSuche(2) = "C.Meier"
For lngi = 1 To ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
For intZaehler = 0 To 2
If Cells(lngi, 3).Value = strSuche(intZaehler) Then
Range(Cells(lngi, 1), Cells(lngi, 17)).Interior.ColorIndex = 6
End If
If Cells(lngi, 21).Value = strSuche(intZaehler) Then
Range(Cells(lngi, 19), Cells(lngi, 35)).Interior.ColorIndex = 6
End If
Next intZaehler
Next lngi
End Sub

cu Micha
Anzeige
AW: Wenn, dann einfärben --> VBA
Tom
Funktionier perfekt - vielen Dank!
Tom
danke für die rückmeldung :-) o.t.
y
.
AW: danke für die rückmeldung :-) o.t.
Tom
Eine Frage habe ich noch:
Wo muß ich den befehl font.bold=true einfügen, damit die gewählte zeile in "fett" angezeigt wird.
Tom
Anzeige
AW: danke für die rückmeldung :-) o.t.
y
hi Tom,
jetzt in diesem zusammenhang ?
dann z.b. so:
Range(Cells(lngi, 1), Cells(lngi, 17)).Font.Bold = True
cu Micha
AW: danke für die rückmeldung :-) o.t.
Tom
Danke. Hätte ich auch selbst drauf kommen können ... :-)
Schönes WE
Tom
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen einfärben in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel mithilfe von VBA farbig zu markieren, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub gelb()
       Dim lngi As Long
       Dim intZaehler As Integer
       Dim strSuche(2) As String
       strSuche(0) = "Meier"
       strSuche(1) = "A.Meier"
       strSuche(2) = "C.Meier"
    
       For lngi = 1 To ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
           For intZaehler = 0 To 2
               If Cells(lngi, 3).Value = strSuche(intZaehler) Then
                   Range(Cells(lngi, 1), Cells(lngi, 17)).Interior.ColorIndex = 6
               End If
               If Cells(lngi, 21).Value = strSuche(intZaehler) Then
                   Range(Cells(lngi, 19), Cells(lngi, 35)).Interior.ColorIndex = 6
               End If
           Next intZaehler
       Next lngi
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Drücke ALT + F8, wähle gelb aus der Liste und klicke auf Ausführen.

Jetzt werden die Zeilen, in denen die Werte "Meier", "A.Meier" oder "C.Meier" in der Spalte C oder U stehen, entsprechend eingefärbt.


Häufige Fehler und Lösungen

  • Fehler: "Das Makro kann nicht gefunden werden."

    • Stelle sicher, dass das Makro korrekt gespeichert wurde und dass Du das richtige Arbeitsblatt aktiviert hast.
  • Fehler: "Keine Zellen gefunden."

    • Überprüfe, ob Du Daten in den angegebenen Spalten hast und dass diese korrekt formatiert sind.

Alternative Methoden

Falls Du keine VBA-Lösung verwenden möchtest, kannst Du auch die bedingte Formatierung nutzen. Diese Methode ist jedoch nicht ideal, wenn die Zellen häufig aktualisiert werden:

  1. Markiere den gewünschten Zellbereich.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden und gebe eine passende Formel ein (z.B. =C1="Meier").
  4. Setze die Formatierung nach Wunsch.

Praktische Beispiele

Hier ist ein praktisches Beispiel für die Anwendung des oben genannten Codes:

  • Angenommen, Du hast eine Excel-Tabelle mit Namen in Spalte C. Wenn Du die oben gezeigte VBA-Prozedur ausführst, werden alle Zeilen, in denen "Meier", "A.Meier" oder "C.Meier" stehen, von A bis Q gelb markiert.

Um auch den Text fett darzustellen, kannst Du diesen zusätzlichen Code in die Schleife einfügen:

Range(Cells(lngi, 1), Cells(lngi, 17)).Font.Bold = True

Tipps für Profis

  • Code optimieren: Du kannst die Suche effizienter gestalten, indem Du die Werte in ein Dictionary oder eine Collection speicherst.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme zu vermeiden.
  • Makros sichern: Speichere Deine Datei als .xlsm, um Makros zu erhalten.

FAQ: Häufige Fragen

1. Wo kann ich den VBA-Code anpassen?
Du kannst den Code im VBA-Editor anpassen, indem Du die Werte in strSuche änderst.

2. Funktioniert dies in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten aktuellen Excel-Versionen funktionieren, einschließlich Excel 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige