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.

Wörter aus Zelle hervorheben
#11
Hallo, ihr Helfer im Forum,

abgesehen von dem Problem das Laura hat (ist bestimmt nachvollziehbar), sind die Makros eigentlich ganz gut und funktionieren auch bei einfacher Suche.
Aber mein Problem ist, wenn ich Begriffe färben möchte, die aus einem Bezug (also mit Formel hinterlegt sind) stammen.

Was muss ich da im Makro ändern (über Import funktioniert, jedenfalls wie ich es versucht habe, nicht).

Oder muss ich dafür eine eigene Anfrage stellen?

LG Stephan
Antworten Top
#12
@Stephan:

in Formeln kann man nicht verschieden Farben haben.

@Laura,

Für die zweite Datei:

Code:
Sub F_en3()

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    sw = Split(Cells(i, 1))
    Tx = Replace(Cells(i, 2), Chr(10), Chr(32))
    mx = Split(Tx)
    For b = LBound(sw) To UBound(sw)
        For m = LBound(mx) To UBound(mx)
            If LCase(sw(b)) = LCase(mx(m)) Then
            Debug.Print mx(m)
            p = 1
            Do
                pos = InStr(p, LCase(Cells(i, 2)), LCase(mx(m)), vbTextCompare)
                If pos > 0 Then Cells(i, 2).Characters(pos, Len(sw(b))).Font.Color = vbRed
                p = pos + 1
            Loop While pos > 0
            Exit For
            End If
        Next m
    Next b
Next i
End Sub

Aber diese "Spiele" mit Groß- und Kleinschreibung müßtest Du selber machen, in Kenntnis aller Details.
Antworten Top
#13
Hallo Fennek,

Dank schon mal für die schnelle Antwort.
Aber da muss ich mich wohl nicht klar genug ausgedrückt haben, die Begriffe werden mit der Formel

=WENNFEHLER(SVERWEIS(A43;Kunststoff;2;FALSCH);WENNFEHLER(SVERWEIS(A43;Papier;2;FALSCH);WENNFEHLER(SVERWEIS(A43;Holz;2;FALSCH);"")))

in die Zellen kopiert, in denen dann der Begriff (z.B. Teller) im Text (Dieser Teller wird aus Holz gefertigt) grün gefärbt werden soll. 

Vielleicht gibt es da doch einen Hinweis, wie ich das anzustellen habe.

Oder muss ich für die Ermittlung der Angaben in den Zellen auch ein Makro bemühen? 

LG Stephan
Antworten Top
#14
Solange eine Formel in einer Zelle steht, kann man nicht Teile des Ergebnisses einfärben.

Nach "copy/pasteValue" geht es.
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Stephan
Antworten Top
#15
@Fennek vielen lieben Dank! Das Makro funktioniert echt super! Groß- und Kleinschreibung ist zum Glück nicht so wichtig.

Ich hab nun aber das Problem das Excel festläuft, wenn ich mehr als zwei Zeilen mit Inhalt habe. Hast du vielleicht eine Idee wodran es liegt? 
.xlsm   Search Term.xlsm (Größe: 20,2 KB / Downloads: 4)

Gruß,
Laura
Antworten Top
#16
Hallo Laura,

Fennek hat in der Schnelle vergessen im Makro eine Endmarke zu setzen.

Denke aber, dass Fennek für das Beenden eine  Formulierung finden wird.
Jedenfalls bleibt die Ausführung erst mal nicht mehr hängen.

Gruß Rudi
Antworten Top
#17
Hallo Frau Menko, ("NickName")

das Problem war ein doppeltes Leerzeichen in der Zelle A4. Bis zum nächsten Problem sollte es so gehen:

Code:
Sub F_en3()

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    sw = Split(WorksheetFunction.Trim(Cells(i, 1)))
    Tx = Replace(Cells(i, 2), Chr(10), Chr(32))
    mx = Split(Tx)
    For b = LBound(sw) To UBound(sw)
        For m = LBound(mx) To UBound(mx)
            If LCase(sw(b)) = LCase(mx(m)) Then
            'Debug.Print mx(m), "##"
            p = 1
            n = 0
            Do
                n = n + 1
                pos = InStr(p, LCase(Cells(i, 2)), LCase(mx(m)), vbTextCompare)
                If pos > 0 Then Cells(i, 2).Characters(pos, Len(sw(b))).Font.Color = vbRed
                p = pos + 1
            Loop While pos > 0 And n < 20
            Exit For
            End If
        Next m
    Next b
Next i
End Sub

Es ist besser Dateien als *.xlsx abzuspeichern, das spart Zeit bei der Sicherheitsprüfung.

mfg


Angehängte Dateien
.xlsm   Search Term.xlsm (Größe: 21,3 KB / Downloads: 1)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • schlaura
Antworten Top
#18
Hallo Fennek,

dass der Fehler in A4 zu finden war, war mir auch schon aufgefallen (habe die Zellen umgebaut), aber auf diesen Fehler bin ich nicht gekommen, habe ihn nicht gesehen. Neben Excel Kenntnissen und deren Vermittlung bist du auch wunderbar für den Detektivberuf geeignet.  Chapeau.
Gruß Rudi
Antworten Top
#19
In der Excel-Sprache sind das "Break-Points" und Einzelschritt-Modus.
Antworten Top
#20
Hallo Fennek,
vielen vielen Dank! Das hilft mir ungemein weiter bzw. macht meine Arbeit sehr viel schneller. Danke fürs Teilen deines Wissens!
Gruß
Laura
Antworten Top


Gehe zu:


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