Schönen Guten Tag. Ich bin ein VBA-Laie und habe mal eine Frage an alle die mir helfen können.
Ich habe in Excel 2 Tabellen.
Tabelle1 dient als Stammdatentabelle mit den korrekten Mandantendaten, Tabelle2 als Eintragungstabelle, in die die Geschäfte mit denen eingetragen werden.
Jetzt will ich die Stammdaten (Name, Mdt-Nr., Geburtstag) meiner Mandanten in Tabelle2 kontrollieren, da hier doch sehr viele Schreibfehler auftreten.
Dazu möchte ich als erstes die Nachnamen, die in Tabelle2 vorhanden sind mit den Nachnamen in Tabelle1 kontrollieren. Ist der jeweilige Nachname gefunden wurden, soll der Vorname dazu überprüft werden.
Ich habe jetzt ein Makro geschrieben, bei dem also der Nachname, der in Tabelle2 auftritt, in Tabelle1 gesucht wird. Dieser Vorgang läuft auch ohne Probleme. Nun gibt es aber bei meinen Mandanten sehr viele gleiche Nachnamen, weshalb ich dann über Offset den Vornamen überprüfen will. Und hier tritt mein Problem auf. Das Makro durchucht nun die Tabellen und findet die Nachnamen, wahrscheinlich aber nicht den Vornamen dazu. Was mache ich hier also falsch?
Hier der Bereich, in dem der Fehler sein müsste:
…
'Der Nachname wird gefunden
If Not SuchzelleN Is Nothing Then
SuchzelleN.Activate
'Bestimmung von SuchzelleV = Vornamen in Mandantentabelle
Set SuchzelleV = SuchzelleN.Offset(0, 1)
'Wenn die Vornamen übereinstimmen schreibe OK
If SuchzelleV = SucheV Then
SucheN.Offset(0, -2).Interior.ColorIndex = 6
SucheN.Offset(0, -2).Value = „OK“
Else 'ansonsten suche den nächsten gleichen Nachnamen
Set SuchzelleN = wksM.Range(„C6:C35600“).Find(SucheN, after:=ActiveCell)
'Nachname wird gefunden
If Not SuchzelleN Is Nothing Then
a = SuchzelleN.Address
Do
SuchzelleN.Activate
Set SuchzelleV = SuchzelleN.Offset(0, 1)
'Stimmen Vornamen jetzt überein, dann OK
If SuchzelleV = SucheV Then
SucheN.Offset(0, -2).Interior.ColorIndex = 6
SucheN.Offset(0, -2).Value = „OK“
If SuchzelleV = SucheV Then Exit Do
Else 'ansonsten suche weiter
Set SuchzelleN = Cells.FindNext(after:=ActiveCell)
If SuchzelleN.Address = a Then Exit Do
End If
Loop
End If
Ich danke euch schon im Voraus wie verrückt.
Tomy