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
@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.
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
Solange eine Formel in einer Zelle steht, kann man nicht Teile des Ergebnisses einfärben.
Nach "copy/pasteValue" geht es.
@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? [
attachment=34435]
Gruß,
Laura
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
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
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
In der Excel-Sprache sind das "Break-Points" und Einzelschritt-Modus.
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