den folgenden Code nutze ich für die Überprüfung von Namen in einer Torschützenliste, ob diese Namen in einer weiteren Tabelle vorhanden sind.
In der Spalte D:D stehen die Torschützen hintereinander, Vorname Nachname getrennt durch ein Komma.
In der weiteren Liste (auf dem Sheet Torjäger), deren Inhalt überprüft wird stehen alle Namen incl. Vornamen untereinander in der Spalte E:E
Im Bereich D:D werden jetzt alle Namen blau markiert, wenn sie in der Tabelle E:E (Torjäger) vorhanden sind.
Der Code funktioniert soweit ganz gut. Doch jetzt gib es ein Ergebnis mit über 20 Toren (in der Spalte D:D), in der Zelle stehen mehr als 256 Zeichen. Es erscheint seitdem die Fehlermeldung 13 "Typen unverträglich) Ich habe beim Googlen einen Hinweis gefunden, dass das wohl daran liegt, dass in der Zelle (in D:D) mehr als 256 Zeichen enthalten sind. Die Zelle kann ich nicht spliten. Wie muss mein Code angepaßt werden, damit er wieder funktioniert?
Beim Debuggen markiert Excel mir die Zeile: " If Application.CountIf(Sheets("Abfrage_Spieler").Range("E:E"), NameX) > 0 Then"
Sub Abgleich()
Columns("D:D").Select
Dim i As Long, j As Byte, c As Range, NameX As String, arrNamen
Dim von As Integer, bis As Integer, k As Byte
For i = 2 To Range("D" & Rows.Count).End(xlUp).Row
Set c = Range("D" & i)
For k = 1 To Len(Trennzeichen)
arrNamen = Split(c, Mid(Trennzeichen, k, 1))
If Not IsEmpty(c) Then
For j = 0 To UBound(arrNamen)
NameX = Trim(arrNamen(j))
If Application.CountIf(Sheets("Torjäger").Range("E:E"), NameX) > 0 _
Then
von = 0
Do
von = InStr(von + 1, c, NameX)
If von = 0 Then Exit Do
bis = Len(NameX)
With c.Characters(Start:=von, Length:=bis).Font
.ColorIndex = 5 '5= Blau; 4= Grün; 3=rot
End With
Loop
End If
Next j
End If
Next k
Next i
End Sub