Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Mitgliederabgleich markiert nur einfach

VBA Mitgliederabgleich markiert nur einfach
Andy
Hallo,
mit dem folgenden Code möchte ich gerne einen Mitgliederabgleich zwischen einer Torschützenliste und der Mitgliederdaten machen. Die Torschützen befinden sich im Blatt Torschützen in der Spalte D:D und sind alle jeweils in einer Zelle durch Komma getrennt eingetragen; die Mitglieder stehen im Blatt Mitglieder in der Spalte E:E. Die Übereinstimmungen werden im Blatt Torschützenliste Grün markiert.
Der Code läuft soweit, aber er markiert mir die Toschützen in der Zelle nur max. einmal!
Wer kann mir hier weiterhelfen?
Const Trennzeichen As String = ",;:."

Sub Namensabgleich()
Sheets("Torschützen").Select
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
If UBound(arrNamen) > 0 Then
For j = 0 To UBound(arrNamen)
NameX = Trim(arrNamen(j))
If Application.CountIf(Sheets("Mitglieder").Range("E:E"), NameX) > 0 Then
von = InStr(c, NameX)
bis = Len(NameX)
With c.Characters(Start:=von, Length:=bis).Font
'.Bold = True
.ColorIndex = 4
End With
End If
Next j
End If
End If
Next k
Next i
End Sub

Gruß
Andy

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Mitgliederabgleich markiert nur einfach
18.09.2011 20:23:06
Daniel
Hi
da muss auch nochmal ne Schleife rein :

If Application.CountIf(Sheets("Mitglieder").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
'.Bold = True
.ColorIndex = 4
End With
Loop
End If
Gruss, Daniel
Ps:mangels Beispieldatei nicht getestet
Prima
18.09.2011 21:01:17
Andy
Hallo Daniel,
danke für die Codeänderung. Funktioniert soweit.
Mir ist nur gerade aufgefallen, dass die Namen nicht markiert werden, wenn nur ein Name vorhanden ist (sprich es ist kein Trennzeichen vorhanden)
Kannst Du mir hier auch nochmal weiterhelfen?
Gruß
Andy
Anzeige
AW: Prima
18.09.2011 21:15:34
Daniel
HI
eigentlich sollte das auch so funktionieren, wenn nur ein Name drinsteht.
aber mit dieser bedingung:

If UBound(arrNamen) > 0 Then
schließt du diesen Fall ja aus.
also lass einfach diese Bedingung weg.
gruß Daniel
Danke!
18.09.2011 23:12:47
Andy
Danke!
Danke!
18.09.2011 23:13:22
Andy
Danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige