Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1128to1132
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 mit Platzhalter | Herbers Excel-Forum

Bedingte Formatierung mit Platzhalter
21.01.2010 11:32:14
Wolle

Hallo Freunde aus dem Forum,
ich habe folgendes Problem:
Zelle A1= 9999037- 14587
Zelle A2= 9996037-65287
Zelle A3= 2300448-0632
Zelle A4= 10548-45899
Ich möchte die Zelle einfärben die mit 999 BEGINNEN und die Nachbarzelle (B) . Wie kann ich das mit VBA lösen? Stehe da total auf dem Schlauch.
Danke und Gruß
Wolfgang

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bedingte Formatierung per VBA
21.01.2010 11:36:59
NoNet
Hallo Wolfgang,
so geht's :
Sub BedingteFormatierung()
With Range("A1:B4")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=LINKS($A1;3)=""999"""
.FormatConditions(1).Interior.ColorIndex = 40 'Orange
End With
End Sub
Gruß, NoNet
AW: Bedingte Formatierung per VBA
21.01.2010 11:50:47
Wolle
Hallo,
ja danke, das sieht guut aus.
Geht das auch wenn ich zB. die 9999 (4x9) in Orange haben möchte und die 999 (3x9) in grün?
Danke und gruß
Wolfgang
AW: Bedingte Formatierung per VBA
21.01.2010 12:02:49
Wolle
Code läuft nicht.
Gruß Wolle
Zweite Bedingte Formatierung per VBA
21.01.2010 12:47:19
NoNet
Hallo Wolle,
zu Frage1 : Du musst einfach eine weitere Bedingte Formatierung hinzufügen :
Sub BedingteFormatierung()
With Range("A1:B4")
.Select 'Bereich zuvor markieren
'Bedingte Formatierungen löschen :
.FormatConditions.Delete
'Erste Bedingte Formatierung :
.FormatConditions.Add Type:=xlExpression, Formula1:="=LINKS($A1;3)=""999"""
.FormatConditions(1).Interior.ColorIndex = 40 'Orange
'Zweite Bedingte Formatierung :
.FormatConditions.Add Type:=xlExpression, Formula1:="=LINKS($A1;4)=""2300"""
.FormatConditions(2).Interior.ColorIndex = 4 'Hellgrün
End With
End Sub
Zu Frage 2 : Wenn bei Ausführung des Makros ein anderer Bereich/Zelle markiert ist, dann werden die Zellbezüge wie relative Bezüge umgerechnet. Daher ist es sinnvoller, den relevanten Bereich im Makro gleich zu markieren (wie oben bereits geschehen !).
Gruß, NoNet
Anzeige
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 11:40:07
André
Moin Wolfgang,
muß es mit VBA sien, oder geht auch eine Bedingte Formattierung?
Markiere einfach die Zellen A1:B4 und erstelle eine neue Bedingte Regel als Formel:
=LINKS($A1;3)="999"
Gruß, André
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 11:41:16
JoWE
Hallo Wolfgang,
zum Beispiel so für den genutzen Bereich:
Sub färben_wenn()
For Each z In ActiveSheet.UsedRange
If Left(Cells(z.Row, 1), 3) = "999" Then
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 3
End If
Next
End Sub
Gruß,
Jochen
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 11:57:39
Wolle
Ja das geht auch gut, Danke Dir. Was muss ich schreiben, wenn ich zB die 999 in rot haben möchte und die 2300 in Grün?
Geht das?
Danke und Gruß
Wolfgang
Anzeige
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 12:39:20
Wolle
Danke Jochen, die Liste hatte ich schon ... habe mich vieleicht etwas falsch ausgedrückt.
ICh möchte 999 in Rot und 2300 in grün. Weiß aber nicht wie ich die die Abfrage in einem Code einbaue.
START
suche 999 und mache rot
suche 2300 und mache grün
ENDE
Geht das?
Danke und Gruß
Wolfgang
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 13:00:09
JoWE
Wolfgang,
klar geht das:
Sub färben_wenn()
For Each z In ActiveSheet.UsedRange
Select Case Left(Cells(z.Row, 1), 3)
Case Is = "999"
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 3
End Select
Select Case Left(Cells(z.Row, 1), 4)
Case Is = "2300"
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 4
End Select
Next
End Sub

Gruß Jochen
Anzeige
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 13:14:29
JoWE
...und so fort mit immer neuen Bedingungen:
Sub färben_wenn()
For Each z In ActiveSheet.UsedRange
Select Case Left(Cells(z.Row, 1), 3) * 1
Case Is = 999
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 3
End Select
Select Case Left(Cells(z.Row, 1), 4) * 1
Case Is = 9999
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 5
Case Is = 2300
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 4
End Select
Select Case Left(Cells(z.Row, 1), 6) * 1
Case Is = 786234
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 6
End Select
Next
End Sub

Gruß,
Jochen
Anzeige
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 14:51:00
Wolle
Wow. Klasse. Ich danke Dir.
Gruß Wolfgang
AW: Bedingte Formatierung mit Platzhalter
21.01.2010 15:01:37
Wolle
Eine Frage hätte ich noch:
Wenn jetzt 999 UND 2300 UND 777 in Farbe 3 sein soll, kann ich dann
Sub färben_wenn()
For Each z In ActiveSheet.UsedRange
Select Case Left(Cells(z.Row, 1), 3)
Case Is = "999"
Case Is = "2300"
Case Is = "777"
Range(Cells(z.Row, 1), Cells(z.Row, 2)).Interior.ColorIndex = 3
End Select
Next
End Sub
schreiben. So alle geforderten Zahlen untereinander?
Gruß Wolle
Zellenhintergrund per VBA bedingt einfärben
21.01.2010 15:53:49
NoNet
Hallo Jochen,
nein das geht SO nicht !
Wenn Du schon auf die "Bedingte Formatierung" verzichten möchtest und das stattdessen selbst per VBA programmieren möchtest, dann z.B. so :
Sub Zellen_FaerbenWenn()
Dim rngZeile As Range, rngZelle As Range
For Each rngZeile In ActiveSheet.UsedRange.Rows
Set rngZelle = Cells(rngZeile.Row, 1) 'Spalte A zuweisen
If rngZelle.Value Like "999*" Or _
rngZelle.Value Like "2300*" Or _
rngZelle.Value Like "777*" Then
rngZelle.Resize(, 2).Interior.ColorIndex = 3
End If
Next
End Sub
Gruß, NoNet
Anzeige
nee
21.01.2010 15:56:19
JoWE

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige