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

Einzelne Buchstaben einer Zelle per VBA einfärben

Forumthread: Einzelne Buchstaben einer Zelle per VBA einfärben

Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 14:23:32
Ina
Hallo in das Forum,

ich habe ein großes Problem und zwar möchte ich den Bereich B1 bis B250 per VBA nach den Buchstabenkombinationen "L" , "S.C." und "S.S.C." durchsuchen und nur diese Buchstaben umfärben. Die Buchstaben "L" und "S.S.C." sollen rot dargestellt werden, "S.C." in oranger Farbe.

Beispiel:
FD 1,2/55mm S.S.C. (nur "S.S.C." soll rot dargestellt werden)
FD 2,5/135mm S.C. (nur "S.C." soll orange dargestellt werden)

Vielleicht habt ihr eine Idee dazu? Danke für eure Hilfe.

LG Ina
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 14:43:09
Oberschlumpf
Hi Ina,

a) "L" ist ja nicht eine Buchstabenkombi, sondern nur n einzelner Buchstabe
b) für "L" hast du keine Bsp-Zeile gezeigt
c) zeig uns doch bitte per Upload eine Excel-Bsp-Datei mit mehreren Bsp-Datenzeilen in Spalte B, so dass auch wir genau sehen können, was du meinst

Ciao
Thorsten
Anzeige
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 15:30:02
Piet
Hallo

in meiner Testdatei funktioniert es so. - Probleme könnte der einzelne Buchstabe L machen.
ggf. im Code noch ein Space davorsetzen, dann musst du ggf. auch a auf a+1 erhöhen!

Der Code wurde übrigens mit dem Makro Recorder aufgezeichnet, und dann bearbeitet.
Nur als Tipp um dich selbst mit VBA zu beschäftigen. Kann ich nur empfehlen.

mfg Piet



Sub Makro1()
Dim Farbe As Long
Dim a As Integer, l As Integer
'Spalte B Colorindex wieder löschen
Range("B1:B250").Font.ColorIndex = 1

For Each AC In Range("B1:B250")
If AC.Value > Empty Then
If InStr(AC, "L") Then 'rot
a = InStr(AC, "L")
l = 1: Farbe = -16776961
ElseIf InStr(AC, "S.S.C.") Then 'rot
a = InStr(AC, "S.S.C.")
l = 7: Farbe = -16776961
ElseIf InStr(AC, "S.C.") And _
InStr(AC, "S.S.C.") = 0 Then 'Orange
a = InStr(AC, "S.C.")
l = 4: Farbe = -16737793
End If

With AC.Characters(Start:=a, Length:=l)
.Font.Color = Farbe
End With
End If
Next AC
End Sub
Anzeige
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 14:44:36
Raimund
Hi Ina


Versuche es damit. Sheet1 umbenennen

Sub FormatTextInCells()

Dim cell As Range
Dim searchRange As Range
Dim startPos As Long
Dim textLength As Long

' Definiere den Bereich, der durchsucht werden soll
Set searchRange = ThisWorkbook.Sheets("Sheet1").Range("B1:B250") ' Ändere "Sheet1" entsprechend deinem Blattnamen

' Durchlaufe jede Zelle im definierten Bereich
For Each cell In searchRange
If Not IsEmpty(cell.Value) Then
' Suche nach "S.S.C."
startPos = InStr(cell.Value, "S.S.C.")
If startPos > 0 Then
textLength = Len("S.S.C.")
cell.Characters(startPos, textLength).Font.Color = RGB(255, 0, 0) ' Rot
End If

' Suche nach "S.C."
startPos = InStr(cell.Value, "S.C.")
If startPos > 0 Then
textLength = Len("S.C.")
cell.Characters(startPos, textLength).Font.Color = RGB(255, 165, 0) ' Orange
End If

' Suche nach "L"
startPos = InStr(cell.Value, "L")
If startPos > 0 Then
textLength = Len("L")
cell.Characters(startPos, textLength).Font.Color = RGB(255, 0, 0) ' Rot
End If
End If
Next cell
End Sub


Oder mit dem aktiven Blatt:

Sub FormatTextInCells()

Dim cell As Range
Dim searchRange As Range
Dim startPos As Long
Dim textLength As Long

' Definiere den Bereich, der durchsucht werden soll
Set searchRange = ActiveSheet.Range("B1:B250") ' Verwendet das aktive Arbeitsblatt

' Durchlaufe jede Zelle im definierten Bereich
For Each cell In searchRange
If Not IsEmpty(cell.Value) Then
' Suche nach "S.S.C."
startPos = InStr(cell.Value, "S.S.C.")
If startPos > 0 Then
textLength = Len("S.S.C.")
cell.Characters(startPos, textLength).Font.Color = RGB(255, 0, 0) ' Rot
End If

' Suche nach "S.C."
startPos = InStr(cell.Value, "S.C.")
If startPos > 0 Then
textLength = Len("S.C.")
cell.Characters(startPos, textLength).Font.Color = RGB(255, 165, 0) ' Orange
End If

' Suche nach "L"
startPos = InStr(cell.Value, "L")
If startPos > 0 Then
textLength = Len("L")
cell.Characters(startPos, textLength).Font.Color = RGB(255, 0, 0) ' Rot
End If
End If
Next cell
End Sub


Gruss
Raimund
Anzeige
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 14:57:11
Beverly
Hi Ina,

z.B. so:

Sub Faerben()

Dim lngZeile As Long
Dim intStart As Integer
For lngZeile = 1 To 250
If InStr(Cells(lngZeile, 2), "S.S.C.") > 0 Then
intStart = InStr(Cells(lngZeile, 2), "S.S.C.")
Cells(lngZeile, 2).Characters(intStart, 6).Font.Color = -16776961
ElseIf InStr(Cells(lngZeile, 2), "S.C.") > 0 Then
intStart = InStr(Cells(lngZeile, 2), "S.C.")
Cells(lngZeile, 2).Characters(intStart, 4).Font.Color = -16727809
ElseIf InStr(Cells(lngZeile, 2), "L") > 0 Then
intStart = InStr(Cells(lngZeile, 2), "L")
Cells(lngZeile, 2).Characters(intStart, 1).Font.Color = -16776961
End If
Next lngZeile
End Sub


Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 15:08:30
daniel
Hi
kommt die jeweilige Buchstabenkombination nur einmal in einer Zelle vor oder kann sie auch mehrfach in den Zellen vorkommen?
"L" ist jetzt nur ein einfacher Buchstabe, dann der auch eventuell als Buchstabe in den Wörtern davor kommen?
Gruß Daniel
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 15:36:51
Piet
Nachtrag

upps, da lagen ja schon einige Lösungen vor, da ward ihr schneller!

@Karin -> mir fielen beim testen Probleme auf beim auswerten von "S.C." weil es mit "S.S.C." kolledieren kann.

mfg Piet
Anzeige
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 15:44:57
daniel
dieses Kollisionsproblem kannst du durch die richtige Reihenfolge lösen.
wenn du erst die "S.C." färbst, werden zwar auch die "S.C." in "S.S.C." umgefärbt, aber das wird ja korrigiert, wenn du danach die "S.S.C" mit der anderen Farbe färbst.
färbst du erst die "S.S.C" und danach die "S.C.", dann bleibt der Fehler.

Gruß Daniel
Anzeige
AW: Einzelne Buchstaben einer Zelle per VBA einfärben
15.01.2025 16:20:26
Beverly
Hi Piet,

"... mir fielen beim testen Probleme auf beim auswerten von "S.C." weil es mit "S.S.C." kolledieren kann...."

Zeige bitte mal ein Beispiel, wann es dabei zu Problemen kommt.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: kanns nicht mehr nachvollziehen ...
16.01.2025 14:05:04
Piet
Hallo Karin

ich hatte mehrfach rumexperimentiert, kann es aber nicht mehr nachvollziehen wie es war??

mfg Piet
...Deshalb meine Rückfrage,...
16.01.2025 15:11:55
Beverly
Hi Piet,

...weil ich das Problem nämlich auch nicht nachvollziehen kann. Dadurch dass mein Code in der If-Verzweigung zuerst mit "S.S.C." vergleicht, geht er in den ElseIf-Zweig für den "S.C."-Vergleich nicht rein, weil die andere Bedingung ja bereits erfüllt ist - somit sollte es aus meiner Sicht zu keinen Komplikationen kommen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/

Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18