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).
29.09.2020, 12:05 (Dieser Beitrag wurde zuletzt bearbeitet: 29.09.2020, 12:05 von Fennek.)
@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.
@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?
Search Term.xlsm (Größe: 20,2 KB / Downloads: 4)
30.09.2020, 17:09 (Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2020, 17:09 von Fennek.)
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
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28 • schlaura
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
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