Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Einzelnes Wort in Zelle suchen und Einfärben
#1
Guten Morgen zusammen,

ich komme gerade nicht mehr weiter und hoffe ihr könnt mir helfen.

Ich habe Beispielsweise in Zelle C10 ein Wort stehen. Dieses Wort möchte ich nun in der Zelle G10 suchen in welcher mehrere Wörter stehen (können).
Findet er dieses Wort in Zelle G10, soll NUR dieses Wort grün eingefärbt und Fett dargestellt werden.

Mein Ansatz (über den ich nicht hinaus komme) sieht so aus:
Code:
Sub Test()

If Worksheets("Tabelle1").Cells(10, 7).Value Like "*" & Worksheets("Tabelle1").Cells(10, 3) & "*" Then

    With Worksheets("Tabelle1").Cells(10, 7)
    .Font.ColorIndex = 10
    .Font.Bold = True
    End With

End If

End Sub

Das Problem ist, dass Excel mir hier die komplette Zelle grün einfärbt. Wie muss ich den Code abändern, dass er mit tatsächlich nur das Such-Wort aus Zelle C10 grün und fett macht?
Ich weiß leider nicht weiter :(

Danke und Gruß
Sebbo
Antwortento top
#2
Hallöchen,

Du müsstest feststellen, von welcher Position bis zu welcher das Wort geht. Dann kannst Du über die Charakters das Wort gezielt einfärben.

Characters (Start, Length)

im Prinzip dann

Worksheets("Sheet1").Range("A1").Characters(3, 5).Font. ...

Die Position bekommst Du mit INSTR, das kennst Du ?
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
Hallo


versuch es mal so.

Code:
Sub Test()
    Dim Wort As String, Pos As Integer
    With Worksheets("Tabelle1")
        Wort = .Cells(10, 3)
        Pos = InStr(.Cells(10, 7), Wort)
   
        If Pos > 0 Then
            .Cells(10, 7).Font.Color = vbBlack 'reset
            .Cells(10, 7).Characters(Start:=Pos, Length:=Len(Wort)).Font.Color = vbRed
        End If
    End With

End Sub

LG UweD
Antwortento top
#4
Super, danke für den Ansatz :-)

Die Funktion INSTR kenne ich wie so viele (noch) nicht, habe aber dank Dr. Google ein bisschen was darüber heraus gefunden.

Folgendermaßen habe ich den Code jetzt angepasst, mit dem Ziel, Position und Länge des gesuchten Wortes vor dem Einfärben zu ermitteln:

Code:
Sub Test()

Dim Suche As String
Dim Laenge As Integer

Laenge = Len(Worksheets("Tabelle1").Cells(10, 3))

Suche = InStr(1, Worksheets("Tabelle1").Cells(10, 7), Worksheets("Tabelle1").Cells(10, 3))

Worksheets("Tabelle1").Cells(10, 7).Charakters(Suche, Laenge).Font.ColorIndex = 10

End Sub

Die Länge gibt er mir korrekt aus. Die Position in der entsprechenden Zelle auch.

Nur in der letzten Zeile wenn es an das Einfärben geht, bringt er mir eine Fehlermeldung "Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht".

Kannst du mir sagen woran das liegt?

Danke für deine Hilfe :-)

Viele Grüße
Sebbo

Vielen Dank auch an dich Uwe,

das werde ich doch gleich mal ausprobieren :-)

Grüße
Sebbo
Antwortento top
#5
Hallo ihr beiden!

Ich wollte nur Danke sagen für den Ansatz und den Code, er funktioniert einwandfrei und gelernt habe ich auch wieder was  19

Viele Grüße
Sebbo
Antwortento top
#6
Hallöchen,

danke für die Rückmeldung.
Freut mich immer wieder, wenn ein user sich nicht als copy&paste-Anwender herausstellt sondern auch mitmacht und lernt Smile

Ansonsten, nicht jeder hat einen passenden Charakters  22 Versuch's mal mit Characters  100
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#7
Ja gerne, und copy&paste ist zwar manchmal verlockend, aber ich will ja auch was lernen und mich verbessern Wink

Danke für den Hinweis mit "CharaKters". Hab mehrmals den Code kontrolliert, aber das habe ich echt nicht gesehen. Manchmal schon kurios...
Jetzt funktioniert es jedenfalls auch mit meiner Variante *freu*

Viele Grüße
Sebbo
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste