VBA code Deel tekst kleuren

Status
Niet open voor verdere reacties.

Matke

Gebruiker
Lid geworden
3 jan 2018
Berichten
5
Hallo,

Ik ben op zoek naar een stuk vba code wat ik in een excel macro kan stoppen wat het volgende uitvoert,

Alleen de tekst "---" in de zinnen in het gehele sheet "Rooster verzend versie" moet rood gekleurd worden.
Deze waarde kan aan het begin, tussen in of aan het einde van de zin zijn.

Voorbeelden eindresultaat,

Cel A1 = ---
Cel A2 = --- / ---
Cel B4 = --- / --- / blablabla
Cel G8 = --- / --- / ---
Cel C5 = --- / blablabla / ---
Cel D17 = --- / --- / blablabla
Cel F6 = blablabla / ---
Cel B7 = blablabla / --- / ---
Cel H65 = blablabla / --- / blablabla

Hoe pak ik dit aan ?

Ik ben al maanden op zoek, maar krijg het niet voor elkaar.

Laatste code wat ik heb geprobeerd aan te passen door te zoeken staat hier onder. (doet overigens helemaal niks)
Het lijkt mij veel te uitgebreid voor zoiets simpels als ik naar op zoek ben.

=================================================
Sub kleur()
sn = "---"

On Error Resume Next
For j = 1 To UBound(sn)
Err.Clear
c01 = Worksheets("Rooster verzend versie").Cells.Find(sn(j, 1), , , 2).Address(0, 0)
If Err.Number = 0 Then
Do
sn(j, 2) = sn(j, 2) & "," & c01
c01 = Worksheets("Rooster verzend versie").Cells.Find(sn(j, 1), Range(c01), , 2).Address(0, 0)
If InStr(sn(j, 2) & ",", "," & c01 & ",") Then Exit Do
Loop
End If
Next

For j = 1 To UBound(sn)
If sn(j, 2) <> "" Then
sp = Split(sn(j, 2), ",")
For jj = 1 To UBound(sp)
With Worksheets("Rooster verzend versie").Range(sp(jj)).Characters(InStr(Worksheets("Rooster verzend versie").Range(sp(jj)), sn(j, 1)), Len(sn(j, 1))).Font
.Bold = True
.Color = vbRed
End With
Next
End If
Next
End Sub
=================================================
 
Ik krijg jouw voorbeeldbestand niet geopend.
 
Met dit in A1:
blablabla / --- / blablabla

Code:
Range("A1").Characters(Start:=13, Length:=3).Font.Color = 255

Worden de streepjes rood gemaakt.
 
Laatst bewerkt:
Hoi Matke, welkom op helpmij:)
Het is echter een goede gewoonte om een vb bestandje te posten (zonder gevoelige info), dan wordt je sneller en doelgerichter geholpen.
En twee plaats je code tussen code tags.
Code in code tags kan via het # teken.
Om een voorbeeldje als bijlage te posten.Gebruik de knop Ga geavanceerd en gebruik daarna de paperclip.
 
Start op 13 Edmoor? die is toch variabel?

Code:
For Each cl In Sheets(1).UsedRange
    If InStr(cl, "---") > 0 Then
    cl.Characters(InStr(cl, "---"), 3).Font.Color = vbRed
    End If
Next
 
Code:
Sub M_snb()
    For Each it In Selection.SpecialCells(2)
      If InStr(it, "---") Then
        For j = 1 To Len(it)
          If Mid(it, j, 1) = "-" Then it.Characters(j, 1).Font.Color = vbRed
        Next
      End If
    Next
End Sub
 
Ik kwam hierop:
Code:
Sub gijs()
    For Each i In Worksheets("Rooster verzend versie").Cells(1, 1).CurrentRegion
        For N = 1 To Len(i)
            C = Mid(i.Value, N, 3)
            If C Like "---" Then
                i.Characters(N, 3).Font.Color = vbRed
            End If
        Next
    Next i
End Sub
 
gast0660: Ik zal er op letten. Dank je wel daarvoor.
 
Code:
Sub M_snb()
    For Each it In Selection.SpecialCells(2)
      If InStr(it, "---") Then
        For j = 1 To Len(it)
          If Mid(it, j, 1) = "-" Then it.Characters(j, 1).Font.Color = vbRed
        Next
      End If
    Next
End Sub

Top. Deze werkt geweldig.
Is het mogelijk om alleen een bepaalde aan te geven kolom door te lopen. bv alleen kolom A en D ?
 
Ik kwam hierop:
Code:
Sub gijs()
    For Each i In Worksheets("Rooster verzend versie").Cells(1, 1).CurrentRegion
        For N = 1 To Len(i)
            C = Mid(i.Value, N, 3)
            If C Like "---" Then
                i.Characters(N, 3).Font.Color = vbRed
            End If
        Next
    Next i
End Sub

Deze code werkt ook super en kan ik voor meerdere items gebruiken. Thx.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan