Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige