Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Werkzeug
BildScreenshot zu Werkzeug Werkzeug-Seite mit Beispielarbeitsmappe aufrufen

Mehr als 3 Bedingungen Format

Betrifft: Mehr als 3 Bedingungen Format von: Hans-Georg
Geschrieben am: 06.10.2014 16:23:37

Hallo

Bin bei VBA ein Neuling

Habe ein Macro gefunden, welches schon gut zu meiner Aufgabe passt


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rngZelle As Range, strText As String
  Dim Bereich As Range
  Set Bereich = Intersect(Target, Range("A1:A100"))
  If Not Bereich Is Nothing Then
  Select Case Target.Value
    Case "A"
    Target.Interior.ColorIndex = 4
    Case "B"
    Target.Interior.ColorIndex = 6
    Case "C"
    Target.Interior.ColorIndex = 8
    Case "D"
  
  End Select
  End If
End Sub
Was ich ändern möchte ist 

Die Farbe soll nicht nur bei "A" geändert werden sondern auch wenn in der Zelle Abend steht,  _
also wenn in der Zelle irgendwo ein Zeilstring mit A steht.


Vielen Dank im Voraus


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: yummi
Geschrieben am: 06.10.2014 16:31:27

Hallo Hans-Georg,

mach das doch mit bedingter Formatierung - nur Zellen formatieren, die enthalten - beginnend mit


Gruß
yummi


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: Hans-Georg
Geschrieben am: 06.10.2014 16:54:26

Hallo yummi

Vielen Dank für die schnelle Nachricht

Bedingte Vorschau geht nicht da ich bis zu 10 verschiedene Bedingungen im Bereich habe


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: yummi
Geschrieben am: 06.10.2014 17:05:16

Hallo Hans Georg,

dann so:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range, strText As String
    Dim Bereich As Range
    Set Bereich = Intersect(Target, Range("A1:A100"))
    If Not Bereich Is Nothing Then
    if Instr(1,Target.Value, "A", vbTextCompare) = 1 then
      Target.Interior.ColorIndex = 4
    elsif Instr(1,Target.Value, "B", vbTextCompare) = 1 then
      Target.Interior.ColorIndex = 6
    elsif Instr(1,Target.Value, "C", vbTextCompare) = 1 then
      Target.Interior.ColorIndex = 8
    ....
    
    End if
    End If
  End Sub
Gruß
yummi


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: Hans-Georg
Geschrieben am: 07.10.2014 10:54:41

Hallo yummi

Vielen Dank für die schnelle Nachricht

Das Macro funktioniert ab noch nicht so wie ich es gerne hätte

1. Der Buchstabe oder Teilstring kann überall in der Zelle stehen "A" für Auto oder "das Auto"

2. Die Zellfarbe soll sich auch ändern wenn sich der Zellinhalt ändert


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: yummi
Geschrieben am: 07.10.2014 11:00:42

Hallo Hans Georg,

dann musst du die Instr Zeilen folgendermaßen ändern z.B. für A

if Instr(1,Target.Value, "A", vbTextCompare) <> 0 then

dann kann das A irgendwo im String stehen

explizit für alle anderen Abfragen auch

Gruß
yummi


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: Hans-Georg
Geschrieben am: 07.10.2014 11:47:40

Hallo yummi

Vielen Dank für die schnelle Nachricht

Der erste Teil funktioniert jetzt egal wo das Zeichen steht aber nur wenn ich den Text in die Zelle schreibe.

Was noch nicht funktioniert ist, wenn ich das Macro auf eine bereits ausgefüllte Tabelle anwende

Das Macro sollte wirken wenn sich im Bereich oder im Tabellenblatt etwas ändert


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: yummi
Geschrieben am: 07.10.2014 12:09:42

Hallo Hans Georg,

dann pack das Makro in das entsprechende Worksheet in

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
einfach rechtsklich unten auf den reiter code anzeigen worksheet auswählen und dann im anderen dropdown change wählen und code reinkopieren


Gruß
yummi


  

Betrifft: AW: Mehr als 3 Bedingungen Format von: Hans-Georg
Geschrieben am: 07.10.2014 14:46:10

Hallo yummi

Vielen Dank für die schnelle Nachricht

Es ist mir fast schon peinlich aber dein letzter Tip wirkt nicht obwohl ich

worksheet auswählen und dann im anderen dropdown change wählen gemacht habe

Wenn ich das Wort in die Zelle eintippe färbt sich die Zelle wie gewünscht

Wenn die Zelle sich aber ändert wenn in einer anderen Tabell sich etwas ändert ändert sich zwar der Text der Zelle aber die Farbe bleibt gleich
Die Farbe ändert sich erst wenn ich das gleiche Wort nochmal eintippe
Aber ich will mir ja ein Werkzeug bauen


  

Betrifft: Was ist mit meinem Hinweis?! :-[ owT von: Luc:-?
Geschrieben am: 07.10.2014 14:47:46

:-?


  

Betrifft: AW: Was ist mit meinem Hinweis?! :-[ owT von: Hans-Georg
Geschrieben am: 08.10.2014 10:45:14

Hallo Luc

Deine Nachricht "Was ist mit meinen Hinweis" hab ich nicht verstanden

Gruß Hans-Georg


  

Betrifft: Click mal auf "Das geht schon.." owT von: robert
Geschrieben am: 08.10.2014 11:25:52

owT


  

Betrifft: Das geht schon, ... von: Luc:-?
Geschrieben am: 06.10.2014 18:08:48

…H-Georg,
du musst nur die Farben anhand definierter Unterbedingungen in den HauptBedingungen per VBA austauschen, was bei deiner XlVersion relativ einfach und sicher fktioniert.
Vorteil: Trifft die HptBedingung nicht mehr zu, entfällt die BedingtFormatierung automatisch und die Zelle muss nicht erst wieder auf die ursprüngl Formatierung gesetzt wdn, was in komplizierteren Fällen als ungefärbt/AutoSchriftfarbe deren dauerhafte Speicherung erfordern würde.
Die (von mir entwickelte) Technik hierfür findest du im Archiv unter Stichworten wie dynamized Conditional Formatting u.ä. Eine Demo ist bspw hier zu finden.
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "Mehr als 3 Bedingungen Format"