Supportnet Computer
Planet of Tech

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

Antwort 2 von fedjo

Hallo Stefan,
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

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

Antwort 5 von nighty

hi dukent :-)

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: