Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Rote Schrift bei einem bestimmten Wort per VBA

Rote Schrift bei einem bestimmten Wort per VBA
13.07.2007 23:06:47
Lenhard
Moin Moin Ihr Excelianer!!
Ich habe im Forums-Archiv sehr viel zu meiner folgenden Anfrage gefunden, aber irgendwie war nicht das richtige dabei.
Problem: Wenn in meinem Tabellenblatt in der Spalte C6:C750 das Wort "Ausgang" steht, dann soll es in Roter Farbe erscheinen. Alle anderen Worte sollen im normalen Excel-Standard "Automatisch" verbleiben.
Bitte eine Lösung per VBA. Die "Bedingte Formatierung" kenne ich, greift aber leider aus verschiedenen Gründen nicht.
Ich bitte um Hilfe!
Gruß aus dem hohen Norden
Lenhard

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
13.07.2007 23:29:00
Uduuh
Hallo,
als Teil des Zellinhalts oder als Inhalt?
Wenn 2. der Fall sein sollte, warum sollte bed. Format nicht greifen?
Gruß aus’m Pott
Udo

AW: Rote Schrift bei einem bestimmten Wort per VBA
13.07.2007 23:35:08
Lenhard
Hallo Udo!
Danke der Nachfrage!!
Nur als Inhalt! ...und "Bedingte Formatierung" greift nicht, weil teilweise schon mehr als 3 bedingte Formatierungen auf Zellen "lasten".
Deshalb per VBA.
Gruß
Lenhard

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 02:27:03
Oberschlumpf
Hi Lenhard
Versuch es mal so:
Schreib ins Change-Ereignis des Sheets diesen Code

If Target.Column = 3 Then
If Target.Value = "Ausgang" Then
Target.Font.ColorIndex = 3
Else
Target.Font.ColorIndex = xlAutomatic
End If
End If


Hilft das?
Ciao
Thorsten

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 11:17:00
Lenhard
Moin Thorsten!!
Das funktioniert perfekt!!! Vielen Dank!
Gruß aus dem Norden!
Lenhard

AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 13:55:00
Matthias
Hallo Lenhard
Nein, nicht ganz perfekt ;-)
Um es auch wirklich nur für Deinen Bereich zu verwenden, solltest Du die Zeilenangaben nicht unterschlagen.
( fetter blauer Text im Code )
sonst passiert das auch außerhalb Deiner Zeilenangaben sofern man in Spalte C (Column=3) bleibt.
Mein Vorschlag:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Row > 5 And Target.Row 
Target.Font.ColorIndex = Target.Font.ColorIndex
If Target.Value = "Ausgang" Then Target.Font.ColorIndex = 3
End If
End Sub


Durch die Zeile Target.Font.ColorIndex = Target.Font.ColorIndex
zerstörst Du nicht eine andere evtl. schon vergebene Schriftfarbe (die aktuelle Schriftfarbe bleibt Dir somit erhalten)
So und nun feier ich den Geburtstag meiner Mutter (Gartenparty angesagt ;-)
bis bald ...
Userbild

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 14:12:45
Oberschlumpf
Hi Matthias
Du hast Recht. Mit meinem Code bekommt jede Zelle in Spalte C rote Textfarbe, wenn man "Ausgang" eingibt.
So gesehen ist dein Code an der Stelle der Bessere (ich war zu faul, auch was für die Zeilenkontrolle zu tun :-) )
Aber dein Code ist trotzdem auch noch nich perfekt.
Mit Verwendung der Zeile
Target.Font.ColorIndex = Target.Font.ColorIndex
bleibt der Text rot, nachdem 1x Ausgang drin stand, und man diesen Wert wieder in anderen Text ändert.
Deine Idee ist wohl nur mit einer Public-Variable möglich.
Ciao
Thorsten

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 14:38:33
Matthias
Hallo Thorsten
ich hatte ja auch gepostet ... (die aktuelle Schriftfarbe bleibt Dir somit erhalten).
Und wenn sie nun mal rot war dann war sie eben rot und bleibt auch so. ;-)
aber ich weiß schon wie Du es meinst ;-)
Userbild

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 14:52:38
Oberschlumpf
Hi Matthias
Aber nei der Gelegenheit kannst du mir (uns) ja mal bitte verraten, wie du den Text (hier) nicht nur fett/kursiv bekommst, sondern auch noch in anderer Farbe.
Thx & bye
Thorsten

AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 16:41:26
Lenhard
Hallo Leute!!! ...das haut mich fast um, was meine Anfrage da so los gelöst hat!! Finde ich SUPER TOLL!!
Bin gerade zwischen zwei Fototerminen ( ...mein 2. Standbein, sonst Krankenpfleger) mal kurz zu Hause und erfreue mich Eures Dialoges!!!
Ich muss nun Fotos bearbeiten und senden und dann zu einem Test-Handspiel vom THW Kiel. Danach, also heute Abend später, schau ich mir alles noch an und werde, so glaube ich, einiges davon umsetzen!!!
Wenn so mit einem Forum verfahren wird, dann LEBT es!!! ...und zahlreiche andere haben auch etwas davon!!
Danke Euch allen!
Gruß
Lenhard

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
15.07.2007 02:44:29
Matthias
Hallo Thorsten
Das ist HTML
Den Text Hallo Thorsten schreibst Du dann so wie im Bild:
Userbild
hilft Dir das weiter ?
Userbild

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
15.07.2007 07:22:24
Oberschlumpf
Hi Matthias
es hilft!!
Ich kenn mich in HTML (Grundkenntnisse) eigtl aus...hätte ich selbst drauf kommen können.
Wenn einer n Brett vermisst - das hab ich gerad vorm Kopp :-))
Danke + Ciao
Thorsten :-)

AW: Rote Schrift bei einem bestimmten Wort per VBA
15.07.2007 12:21:00
Lenhard

Hi Leute!!
Ist ein wirklich netter
Dialog
, den Ihr da so führt!!!
Ich bin am Schmunzeln und freue mich!! ...der
Spruch mit "dem vermissten Brett"
ist einfach klasse!



Wenn Ihr Euch fragt,
wie
ich dass hier nun so schnell gemacht habe:
Ganz einfach, schreibt Euren
Text in einem HTML-Editor und formatiert ihn da auch (ist wesentlich bequemer!).
Dann geht Ihr in den Quelltext (...oder bei Frontpage ist es die
"HTML-Registerkarte") und kopiert einfach das, was zwischen den Wörtern "body"
steht hier ins Forum! Thats it!


Und nochmals: Danke für Euer Interesse!!
Gruß
Lenhard
PS ...na na na, wir sind doch hier in einem Excel-Forum und nicht in einem HTML-Skript-Forum... :-)))

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 02:25:00
Jenny
Hallo Lenhard,
kopiere diesen Code in das Modul des Tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
For Each rngZelle In Range("J3:J2000")
If rngZelle.Value = "Ausgang" Then rngZelle.Font.ColorIndex = 3
Next rngZelle
End Sub


Grüße von Jenny im Excel-Land

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 11:41:00
Lenhard
Moin Jenny!
Vielen Dank für Deinen Vorschlag!!
Dein Vorschlag funktioniert bis zum Eintrag des Wortes "Ausgang". Das Wort nimmt in der Tabelle die rote Farbe an... ...aber gleichzeitig wird dadurch die Zelle formatiert.
Wenn man die Einträge in der Spalte wieder ändert, bleiben sie in roter Schrift! Es soll aber nur das Wort "Ausgang" rot dargestellt werden.
Da Thorsten mir auch eine funktionierende Lösung vorgeschlagen hatte, könnten wir natürlich hier Schluss machen. Mich interessiert aber Dein Grundgedanke sehr! Also: Wenn Du magst und noch eine Lösung auf Deiner Basis hast, dann gerne hier!!
Vielen Dank Jenny!
Gruß
Lenhard

Anzeige
AW: Rote Schrift bei einem bestimmten Wort per VBA
14.07.2007 11:53:00
Lenhard
Hallo Jenny! Ich noch mal! ....denn ich habe eine - mögliche - Lösung bereits selber gefunden:
Dim rngZelle As Range
For Each rngZelle In Range("C6:C750")
If rngZelle.Value = "Ausgang" Then
rngZelle.Font.ColorIndex = 3
Else
rngZelle.Font.ColorIndex = xlAutomatic
End If
Next rngZelle
Das funktioniert, aber da ich Daten per UserForm in die Tabelle eintrage folgt nun das nächste Problem: Die Zeit, in der die Einträge aus dem UserForm in das Tabellenblatt übernommen werden, verlängert sich wesentlich!!
Gruß
Lenhard
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Rote Schrift bei einem bestimmten Wort per VBA


Schritt-für-Schritt-Anleitung

Um die Schriftfarbe in Excel über VBA zu ändern, wenn das Wort "Ausgang" in der Spalte C6:C750 erscheint, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Finde das entsprechende Tabellenblatt in der Projektansicht. Klicke mit der rechten Maustaste darauf und wähle Code anzeigen.
  3. Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C6:C750")) Is Nothing Then
        If Target.Value = "Ausgang" Then
            Target.Font.ColorIndex = 3 ' Rote Schrift
        Else
            Target.Font.ColorIndex = xlAutomatic ' Standardfarbe
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Blatt.
  2. Teste die Funktion, indem du das Wort "Ausgang" in eine Zelle der Spalte C eingibst. Die Schriftfarbe sollte rot erscheinen.

Häufige Fehler und Lösungen

  • Fehler: Die Schriftfarbe bleibt rot, auch wenn der Text geändert wird.

    • Lösung: Stelle sicher, dass du nur die Schriftfarbe änderst, wenn das Wort "Ausgang" eingegeben wird. Verwende die Else-Bedingung, um die Farbe zurück auf xlAutomatic zu setzen.
  • Fehler: Der Code funktioniert nicht auf allen Zellen.

    • Lösung: Überprüfe, ob du die Range korrekt definiert hast. Der Code muss in das richtige Tabellenblatt-Modul eingefügt werden.

Alternative Methoden

Falls du die Schriftfarbe über die Bedingte Formatierung ändern möchtest, kannst du die folgenden Schritte ausführen:

  1. Markiere den Bereich C6:C750.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib die Formel ein: =C6="Ausgang".
  5. Klicke auf Formatieren, wähle die Schriftfarbe rot aus und bestätige.

Diese Methode ist weniger flexibel als die VBA-Lösung, da sie an die Anzahl der möglichen Bedingungen gebunden ist.


Praktische Beispiele

Hier sind einige Beispiele, wie du VBA zur Änderung der Schriftfarbe in Excel verwenden kannst:

  • Ändern der Schriftfarbe für mehrere Wörter:

    If Target.Value = "Ausgang" Or Target.Value = "Ziel" Then
      Target.Font.ColorIndex = 3
    End If
  • Verwenden von Color anstelle von ColorIndex:

    Target.Font.Color = RGB(255, 0, 0) ' RGB für rote Schrift

Diese Beispiele zeigen, wie flexibel VBA für die Schriftfarbe genutzt werden kann.


Tipps für Profis

  • Optimierung der Performance: Wenn du viele Zellen gleichzeitig verarbeiten möchtest, verwende Application.ScreenUpdating = False am Anfang deines Codes und setze es am Ende wieder auf True, um die Berechnungszeit zu verkürzen.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass dein VBA-Code auch bei unerwarteten Eingaben stabil bleibt.

  • Dokumentation: Kommentiere deinen Code gut, damit auch andere Benutzer verstehen, wie die Schriftfarbe in Excel verändert wird.


FAQ: Häufige Fragen

1. Frage
Was ist der Unterschied zwischen ColorIndex und Color in VBA?
Antwort: ColorIndex verwendet eine Farbpalette von 1 bis 56, während Color RGB-Werte verwendet, die eine breitere Palette an Farben ermöglichen.

2. Frage
Kann ich die Schriftfarbe auch in einer bestimmten Excel-Version ändern?
Antwort: Ja, die VBA-Befehle zur Änderung der Schriftfarbe sind in den meisten Excel-Versionen gleich. Stelle jedoch sicher, dass du die richtige Syntax verwendest.

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