Supportnet / Forum / Tabellenkalkulation
Farbige Wörter in einer Zelle
Frage
Guten Morgen,
wollte gerade mit der Suchen/Ersetzen-Funktion bestimmte Wörter in einem Zellbereich blau markieren.
Habe dafür bei Erstzen die Option "Format" gewählt, mit Schriftfarbe blau als Option. Der eigentliche Text soll unverändert beibehalten werden. Nun wird in der Vorschau zwar die richtige Farbe angezeigt, aber hinterher sind alle Wörter in den Zellen blau.
An sich wollte ich ja nur das eine Wort blau markieren.
Wenn ich das Wort mit der Maus markiere, so kann ich nur dieses eine Wort blau markieren, das geht. Gibt es hier einen Workaround dafür ?
Grüße
Stefan
Antwort 1 von DukeNT
Hi Stefan,
das geht leider nur über VBA.
Kopiere folgendes in ein Modul:
Sub SuchtextFarbig()
such = InputBox("Suchwort")
suchl = Len(such)
For i = 1 To Cells(65536, 1).End(xlUp).Row
suchCell = Len(Cells(i, 1))
a = 1
Do Until a = suchCell
If Cells(i, 1).Characters(a, suchl).Text = such Then Cells(i, 1).Characters(a, suchl).Font.ColorIndex = 5
a = a + 1
Loop
Next i
End Sub
Es werden von Zelle A1 bis zur letzten nichtleeren Zelle der Text nach dem Suchwort durchsucht und Farbig markiert.
Das Makro rufst du in Excel über "Extras->Makro->Makros..." auf.
Gruß Niels
das geht leider nur über VBA.
Kopiere folgendes in ein Modul:
Sub SuchtextFarbig()
such = InputBox("Suchwort")
suchl = Len(such)
For i = 1 To Cells(65536, 1).End(xlUp).Row
suchCell = Len(Cells(i, 1))
a = 1
Do Until a = suchCell
If Cells(i, 1).Characters(a, suchl).Text = such Then Cells(i, 1).Characters(a, suchl).Font.ColorIndex = 5
a = a + 1
Loop
Next i
End Sub
Es werden von Zelle A1 bis zur letzten nichtleeren Zelle der Text nach dem Suchwort durchsucht und Farbig markiert.
Das Makro rufst du in Excel über "Extras->Makro->Makros..." auf.
Gruß Niels
Antwort 2 von fedjo
Hallo Stefan,
vielleicht reicht ja auch schon die "Bedingte Formatierung" schon.
Gruß
fedjo
vielleicht reicht ja auch schon die "Bedingte Formatierung" schon.
Gruß
fedjo
Antwort 3 von nighty
hi dukent :-)
statt einer schleife beschaeftige dich mal mit der find function,desweiteren wenn eine schleife doch unumgänglich sein sollte setze den zaehler auf die position des gerade gefundenen indexes womit sie halbdynamisch waere.
gruss nighty
statt einer schleife beschaeftige dich mal mit der find function,desweiteren wenn eine schleife doch unumgänglich sein sollte setze den zaehler auf die position des gerade gefundenen indexes womit sie halbdynamisch waere.
gruss nighty
Antwort 4 von nighty
hi dukent :-)
hier noch ein beispiel fuer eine dynamischen schleife mit der findfunction die sich durch ein array nochmals verschnellern liesse.
gruss nighty
Option Explicit
Sub such()
Dim suche As Range
Dim zaehler As Long
Dim zeile As Long
Application.ScreenUpdating = False
For zaehler = 1 To Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
Set suche = Sheets(1).Range("B" & zaehler & ":B" & Sheets(1).Range("B" & Rows.Count).End(xlUp).Row).Find("DeinSuchbegriff", LookIn:=xlValues)
If Not suche Is Nothing Then
zaehler = suche.Row
Cells(suche.Row, suche.Column).Interior.ColorIndex = 3
End If
Next zaehler
Application.ScreenUpdating = True
End Sub
hier noch ein beispiel fuer eine dynamischen schleife mit der findfunction die sich durch ein array nochmals verschnellern liesse.
gruss nighty
Option Explicit
Sub such()
Dim suche As Range
Dim zaehler As Long
Dim zeile As Long
Application.ScreenUpdating = False
For zaehler = 1 To Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
Set suche = Sheets(1).Range("B" & zaehler & ":B" & Sheets(1).Range("B" & Rows.Count).End(xlUp).Row).Find("DeinSuchbegriff", LookIn:=xlValues)
If Not suche Is Nothing Then
zaehler = suche.Row
Cells(suche.Row, suche.Column).Interior.ColorIndex = 3
End If
Next zaehler
Application.ScreenUpdating = True
End Sub
Antwort 5 von nighty
hi dukent :-)
durch objektprogrammierung liesse sich die findfunction auch bei einer farbsuche einsetzen :-))
gruss nighty
durch objektprogrammierung liesse sich die findfunction auch bei einer farbsuche einsetzen :-))
gruss nighty
Antwort 6 von DukeNT
Hi nighty,
schönen dank für dein Tipp aber das ist ja nicht das was gesucht wurde.
Ich habe es so verstanden, dass in einer Zelle nach bestimmten Text gesucht werden soll und nur der farblich makiert werden sollte und nicht die ganze Zelle.
Gruß Niels
schönen dank für dein Tipp aber das ist ja nicht das was gesucht wurde.
Ich habe es so verstanden, dass in einer Zelle nach bestimmten Text gesucht werden soll und nur der farblich makiert werden sollte und nicht die ganze Zelle.
Gruß Niels
Antwort 7 von Stefan_calc
Hallo Niels,
aufgrund deiner und der anderen Tipps bin ich schon ein Stück weiter.
- es ist also ohne VBA kaum möglich, mittels suchen / ersetzen nur einzelne Wörter innerhalb einer Zelle farbig zu markieren.
Hatte schon an meinem Bedienverständnis für Excel gezweifelt. Der Text wird zwar geändert, aber dann ist hinterher die ganze Zelle farbig geändert, was ich eigentlich nicht wollte.
- nun kann ich besser mit VBA umgehen, kann Texte innerhalb einer Schleife von der der ersten bis zur letzten Zeile bearbeiten.
einen schönen tach noch
Stefan
aufgrund deiner und der anderen Tipps bin ich schon ein Stück weiter.
- es ist also ohne VBA kaum möglich, mittels suchen / ersetzen nur einzelne Wörter innerhalb einer Zelle farbig zu markieren.
Hatte schon an meinem Bedienverständnis für Excel gezweifelt. Der Text wird zwar geändert, aber dann ist hinterher die ganze Zelle farbig geändert, was ich eigentlich nicht wollte.
- nun kann ich besser mit VBA umgehen, kann Texte innerhalb einer Schleife von der der ersten bis zur letzten Zeile bearbeiten.
einen schönen tach noch
Stefan