Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

wenn in Zelle kein bestimmtes Wort, Farbe ändern

wenn in Zelle kein bestimmtes Wort, Farbe ändern
21.08.2018 15:32:29
Martin
Hallo miteinander,
ich möchte beim Klicken des Button 2019, dass in alle Zellen, in denen nicht 2019 enthalten ist, sich die Schriftfarbe der Hintergrundfarbe der Zelle anpasst.
Bisher habe ich das mit folgendem Code gelöst:
Private Sub CommandButton1_Click()
Dim Zelle As Range
For Each Zelle In Range("A6:E15")
If Zelle  "2019" Then
Zelle.Font.Color = Zelle.Interior.Color
End If
Next Zelle
End Sub
Private Sub CommandButton2_Click()
Dim Zelle As Range
For Each Zelle In Range("A6:E15")
Zelle.Font.Color = 1
Next Zelle
End Sub
Nun ändert sich auch die Schriftfarbe in den Zellen, in denen z.B. Feb 2019 steht. Wenn ich im Code "*2019*" schreibe, wird auch die Schriftfarbe der Zellen mit dem Inhalt 2019 geändert. Wie kann ich es lösen, damit z.B. Feb 2019 die Schriftfarbe nicht ändert?
Die Beispieldatei ist angehängt.
https://www.herber.de/bbs/user/123465.xlsm

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Der Code macht genau das, was Du vorgibst...
21.08.2018 15:44:14
{Boris}
Hi,
If Zelle "2019" Then
betrifft alle Zellen, die nicht EXPLIZIT den exakten Inhalt "2019" haben.
Ich denke, du brauchst:
If Not Zelle Like "*2019*" Then
VG, Boris
AW: Der Code macht genau das, was Du vorgibst...
21.08.2018 15:51:33
Martin
Vielen Dank Boris. Funktioniert perfekt.
Schöne Grüße
AW: wenn in Zelle kein bestimmtes Wort, Farbe ändern
21.08.2018 15:47:50
Werner
Hallo Martin,
frag doch die Länge des Zellinhaltes mit ab:
Private Sub CommandButton1_Click()
Dim Zelle As Range
For Each Zelle In Range("A6:E15")
If Len(Zelle) = 4 And Zelle = 2019 Then
Zelle.Font.Color = Zelle.Interior.Color
End If
Next Zelle
End Sub
Gruß Werner
AW: wenn in Zelle kein bestimmtes Wort, Farbe ändern
21.08.2018 15:58:47
Martin
Hallo Werner,
danke für deine Antwort. Vielleicht habe ich meine frage etwas falsch formuliert.
Wenn ich den Button "2019" drücke, sollen alle Zellen mit dem Inhalt 2019 oder Feb 2019, Mrz 2019 usw. die Schriftfarbe behalten. Bei allen anderen Zellen mit einem anderen Inhalt soll die Schriftfarbe der Hintergrundfarbe angepasst werden.
Mit deiner Lösung werden nur die Zellen in denen 2019 steht geändert. Trotzdem vielen Dank.
Gruß Martin
Anzeige
AW: wenn in Zelle kein bestimmtes Wort, Farbe ändern
21.08.2018 16:02:27
Werner
Hallo Martin,
habe ich falsch verstanden. Aber du hast ja jetzt eine Lösung.
Gruß Werner
AW: wenn in Zelle kein bestimmtes Wort, Farbe ändern
22.08.2018 08:52:17
Martin
Hallo nochmal,
jetzt hab ich doch nochmal eine Frage.
Kann ich diese Funktion auch ohne Button nutzen. Wenn ich z.B. in Zelle A1 2019 schreibe, dass nur die Zellen ohne 2019 die Schriftfarbe anpassen. Die Zellen mit Feb 2019, Mrz 2019 sollen die Schriftfarbe behalten.
Also die Zeile
 If Not Zelle Like "*2019*" Then

so abändern, dass der Text in A1 die "*2019*" ersetzt.
Gruß Martin
AW: wenn in Zelle kein bestimmtes Wort, Farbe ändern
22.08.2018 09:06:10
Werner
Hallo Martin,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Target.Address(0, 0) = "A1" Then
For Each Zelle In Range("A6:E15")
If Not Zelle Like "*" & Target.Value & "*" Then
Zelle.Font.Color = Zelle.Interior.Color
Else
Zelle.Font.ColorIndex = vbBlack
End If
Next Zelle
End If
End Sub
Gruß Werner
Anzeige
AW: wenn in Zelle kein bestimmtes Wort, Farbe ändern
22.08.2018 09:15:09
Martin
Vielen Dank Werner. Funktioniert perfekt!
Gruß Martin
Gerne u. Danke für die Rückmeldung. o.w.T.
22.08.2018 09:29:20
Werner
Mit Ereignismakro (Worksheet_Change)
22.08.2018 09:09:59
{Boris}
Hi Martin,
dieser Code gehört auch in das Klassenmodul "Tabelle1".
Mit Eingabe in A1 wird entsprechend reagiert. Wenn Du A1 löschst, dann ist alles wieder sichtbar.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Target.Address(0, 0) = "A1" Then
If Target  "" Then
For Each C In Range("A6:E15")
If C Like "*" & Target & "*" Then
C.Font.Color = C.Interior.Color
End If
Next C
Else
Range("A6:E15").Font.Color = 1
End If
End If
End Sub
VG, Boris
AW: Mit Ereignismakro (Worksheet_Change)
22.08.2018 09:24:05
Martin
Viele Danke Boris. Deine Lösung funktioniert auch super. Ich musste nur in der Zeile

If  C Like "*" & Target & "*" Then
noch If not einfügen.
Gruß Martin
Anzeige
Klar - Not hat gefehlt ;-) oT
22.08.2018 09:47:39
{Boris}
...
Geht alternativ...
22.08.2018 11:17:54
{Boris}
Hi,
...auch ohne VBA - mit der Bedingten Formatierung.
VG, Boris

334 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige