Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per VBA Spalte einfärben

Per VBA Spalte einfärben
15.12.2014 12:52:14
Sparrow
Hallo!
Ich würde gerne per VBA eine Spalte in grau einfärben sobald oben in der ersten Zeile "Wahr" steht - natürlich soll nur die Spalte eingefärbt werden, wo "Wahr" steht - ist das möglich?
Mein Versuch:
Sub einfaerben()
Dim Zelle As String
For Each Zelle In Intersect(Row(1))
If Zelle = "Wahr" Then
Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End If
Next Zelle
End Sub
Vielen Dank im Voraus!
Vg
Sascha

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bedingte Formatierung! nicht VBA (owT)
15.12.2014 13:24:15
EtoPHG

Bedingte Formatierung! nicht VBA (owT)
15.12.2014 13:24:26
EtoPHG

AW: Per VBA Spalte einfärben
15.12.2014 13:27:26
ChrisL
Hi Sascha
Wenn es unbedingt VBA sein soll ;)
Sub t()
Dim iSpalte As Integer
For iSpalte = 1 To Range("IV1").End(xlToLeft).Column
If Cells(1, iSpalte) = True Then
With Columns(iSpalte).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
End With
Else
With Columns(iSpalte).Interior
.Pattern = xlNone
.TintAndShade = 0
End With
End If
Next iSpalte
End Sub

cu
Chris

Anzeige
Pinsel zur Hand nehmen ;) o.T.
15.12.2014 15:27:42
ChrisL
cu
Chris

AW: Pinsel zur Hand nehmen ;) o.T.
16.12.2014 10:38:39
Sparrow
Hey,
erstmal vielen Dank für die Antworten! Dadurch, dass er nun die Spalten durchsucht wird es sehr langsam - reicht es nicht nur die oberen Zellen von D1:AH1 zu durchsuchen? Dementsprechend sollen dann auch nur die Spalten von D:AH gefärbt sein (Da wo Wahr steht)
Vg.
Sascha

Anzeige
AW: Pinsel zur Hand nehmen ;) o.T.
16.12.2014 10:45:00
ChrisL
Hi Sascha
Es wird auch nur die Zeile 1 durchsucht. Vielleicht wird es langsamer weil die "falschen" Zeilen im Format zurück gesetzt werden, was du in deinem Code nicht drin hattest. Somit "Else" weglassen.
Sub t()
Dim iSpalte As Integer
For iSpalte = 1 To Range("IV1").End(xlToLeft).Column
If Cells(1, iSpalte) = True Then
With Columns(iSpalte).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
End With
End If
Next iSpalte
End Sub
cu
Chris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA zum Einfärben von Spalten in Excel


Schritt-für-Schritt-Anleitung

Um eine Spalte in Excel per VBA einzufärben, wenn in der ersten Zeile "Wahr" steht, kannst du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere und füge den nachstehenden Code in das Modul ein:
Sub einfaerben()
    Dim iSpalte As Integer
    For iSpalte = 4 To 34 ' D bis AH
        If Cells(1, iSpalte) = True Then
            With Columns(iSpalte).Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorDark1
                .TintAndShade = -0.149998474074526
            End With
        End If
    Next iSpalte
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, um die gewünschten Spalten einzufärben.

Häufige Fehler und Lösungen

  • Fehler: Die Spalten färben sich nicht korrekt.

    • Lösung: Stelle sicher, dass die Zellen in der ersten Zeile tatsächlich den Wert "Wahr" enthalten. In VBA ist "Wahr" ein boolescher Wert, also überprüfe, ob du nicht "Wahr" als Text eingegeben hast.
  • Fehler: Das Makro läuft sehr langsam.

    • Lösung: Reduziere den Suchbereich. Im obigen Beispiel wird nur der Bereich D1 bis AH1 durchsucht, was die Ausführung deutlich beschleunigt.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die bedingte Formatierung in Excel nutzen:

  1. Markiere den Bereich D1:AH1.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib die Formel =D1=WAHR ein (stelle sicher, dass die Zellreferenz zur ersten Zelle passt).
  5. Wähle das gewünschte Format (z.B. grau) aus und klicke auf OK.

Praktische Beispiele

Hier ist ein Beispiel, wie du das Makro anpassen kannst, um andere Farben zu verwenden:

Sub einfaerben()
    Dim iSpalte As Integer
    For iSpalte = 4 To 34 ' D bis AH
        If Cells(1, iSpalte) = True Then
            With Columns(iSpalte).Interior
                .Pattern = xlSolid
                .Color = RGB(255, 0, 0) ' Rot
            End With
        End If
    Next iSpalte
End Sub

Tipps für Profis

  • Nutze die Application.ScreenUpdating = False und Application.ScreenUpdating = True Befehle, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.
Sub einfaerben()
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
End Sub
  • Experimentiere mit verschiedenen Farbwerten und -mustern, um deine Excel-Berichte ansprechender zu gestalten.

FAQ: Häufige Fragen

1. Frage
Kann ich auch mehrere Bedingungen hinzufügen?
Ja, du kannst mehrere If-Anweisungen in deinem VBA-Code verwenden, um verschiedene Bedingungen zu überprüfen.

2. Frage
Funktioniert das auch in Excel 365?
Ja, der Code ist kompatibel mit Excel 365 und anderen Versionen, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige