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

Forumthread: Bedingte Formatierung als VBA

Bedingte Formatierung als VBA
07.11.2019 17:52:55
Laui

Liebes Experte-Team,
noch eine Frage....
ich möchte für meine Tabelle eine bedingte Formatierung via VBA die immer erweitert wird sobald neue Zeilen in der Tabelle hinzugefügt werden.
Die Regel die ich in Excel erstellt habe sieht folgendermaßen aus:
=$B5="Nicht abgeschlossen" ( A5 gelb)
= Zellwert kleiner 38 ( A5 grün)
=Wenn größer 38 (rot)
Wie kann ich das mit Hilfe einer VBA abdecken?
Vielen lieben Dank für eure super Hilfe!!!!
Liebe Grüße
Laui
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung als VBA
08.11.2019 06:26:45
Klaus
Hallo Laui,
ich habe einmal die bedingte Formatierung durch den Makrorekorder gejagt und dann die Zeilennummer variabel gestaltet. Hier das Ergebnis:
Sub MakroMacheFormatierung()
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=A" & ActiveCell.Row & "38"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$B" & ActiveCell.Row & "= _
""Nicht abgeschlossen"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
End Sub
Das Makro kannst du entweder manuell aufrufen um die selektierte Zelle bedingt zu formatieren, oder du kannst es an ein passendes Change-Ereignis hängen. Da ich nicht weiß wie genau neue Zeilen in deine Tabelle kommen, kann ich nur raten. Das hier könnte, zum Beispiel, funktionieren:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lRow As Long
Const myCol As Long = 1 'Spalte A
If Target.Column = myCol Then  'nur Spalte A
lRow = Cells(Rows.Count, myCol).End(xlUp).Row
If Target.Row = lRow Then
Application.EnableEvents = False
Selection.Offset(-1, 0).Select
MakroMacheFormatierung
Application.EnableEvents = True
End If
End If
End Sub
LG,
Klaus M
Anzeige
AW: Bedingte Formatierung als VBA
08.11.2019 14:05:46
MB12
Antwortformular
Antwort auf: Bedingte Formatierung als VBA von Laui vom 07.11.2019 17:52:55
Name: Klaus M. Version: Ohne Relevanz
Betreff: AW: Bedingte Formatierung als VBA Level: Kaum Excel/VBA-Kenntnisse
Hallo Laui,
ich habe einmal die bedingte Formatierung durch den Makrorekorder gejagt und dann die Zeilennummer variabel gestaltet. Hier das Ergebnis:
Sub MakroMacheFormatierung()
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=A" & ActiveCell.Row & " Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=A" & ActiveCell.Row & ">38"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$B" & ActiveCell.Row & "= _
""Nicht abgeschlossen"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
End Sub
Das Makro kannst du entweder manuell aufrufen um die selektierte Zelle bedingt zu formatieren, oder du kannst es an ein passendes Change-Ereignis hängen. Da ich nicht weiß wie genau neue Zeilen in deine Tabelle kommen, kann ich nur raten. Das hier könnte, zum Beispiel, funktionieren:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lRow As Long
Const myCol As Long = 1 'Spalte A
If Target.Column = myCol Then  'nur Spalte A
lRow = Cells(Rows.Count, myCol).End(xlUp).Row
If Target.Row = lRow Then
Application.EnableEvents = False
Selection.Offset(-1, 0).Select
MakroMacheFormatierung
Application.EnableEvents = True
End If
End If
End Sub

LG,
Klaus M
Bezieht sich auf diese Nachricht:
Liebes Experte-Team,
noch eine Frage....
ich möchte für meine Tabelle eine bedingte Formatierung via VBA die immer erweitert wird sobald neue Zeilen in der Tabelle hinzugefügt werden.
Die Regel die ich in Excel erstellt habe sieht folgendermaßen aus:
=$B5="Nicht abgeschlossen" ( A5 gelb)
= Zellwert kleiner 38 ( A5 grün)
=Wenn größer 38 (rot)
Wie kann ich das mit Hilfe einer VBA abdecken?
Vielen lieben Dank für eure super Hilfe!!!!
Liebe Grüße
Laui
Passwort:
Name:
Email:
Betreff:
Aktiviere das Kontrollkästchen, wenn die Frage mit diesem Beitrag nicht beantwortet wurde und der Thread weiter bei den offenen Fragen angezeigt werden soll
Hallo Laui,
alternativ könntest du die Tabelle auch als "Tabelle" formatieren. In diesem Fall werden bei jeder neuen Zeile die bedingten Formatierungen übernommen.
Gruß, Margarete
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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