HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
Sabrina
27.04.2026 22:03:25
AW: Code funktioniert nicht @Uwe
Hallo Uwe

"... Diese war so angelegt, dass die MsgBox gestartet wird, wenn kein Treffer vorhanden ist. " ==> das ist völlig korrekt. Heißt =0 passt.

Wenn ich nun eine Nr. eintrage, die sowohl in der aktuellen als auch in der externen vorhanden ist, passiert folgendes:

MSGBox "Nr. ist bereits in xy vorhanden" ==> das ist auch völlig korrekt

Wenn ich diese Meldung aber bestätige, erscheint die MSGBox: "Nr. ist nicht in der Datei xy vorhanden" ==> diese Meldung darf nicht erscheinen, da sie vorhanden ist.

Lediglich, wenn die Nr. NICHT in der externen Datei ist, dass soll o.g. erscheinen.

Sorry Uwe, dass ich dich "nerve" - bin dir sehr dankbar für deine Unterstützung.

LG Sabrina
Als Antwort auf diesen Beitrag
Alwin Weisangler
27.04.2026 21:21:31
AW: Code funktioniert nicht @Uwe
Hallo Sabrina,

die 1199 wird in der externen Datei gefunden. Ich hatte mich mit der Ausgabe der MsgBox an deiner auskommentierten Version orientiert. Diese war so angelegt, dass die MsgBox gestartet wird, wenn kein Treffer vorhanden ist.

Wenn die MsgBox bei Treffer gestartet werden soll, muss in der Prozedur: Sub AbgleichExtern(lfdNr As Variant)
diese Zeile so geändert werden:


If k > 0 Then MsgBox "Lfd. Nummer " & lfdNr & " ist in Datei: " & datN & "! vorhanden", vbOKOnly, "Hinweis"

Der Rest bleibt unverändert. Einzig wenn im Eingabeblatt der eingegeben Wert, weil bereits vorhanden wieder entfernt wird, ist Target leer. Damit wird natürlich auch nichts in der externen Datei gefunden.

Ich hatte da jetzt kein Problem darin gesehen, da diese Nummer ja sowieso wieder entfernt wurde. Sollte dies zwingend anders sein, musst du mir das nochmal mitteilen.
Für dich zum Analysieren:
-Öffne im VBA Editor das Lokalfenster im Menü "Ansicht"
- Klicke mit der Maus in diese Zeile: Call AbgleichExtern(Target) und drücke F9. Damit wird der Haltepunkt gesetzt (roter Punkt)
- Trage 1199 in eine Zelle SpalteA ein. --> wechsle in den VBA-Editor und schaue ins Lokalfenster in Variable arr klicke aufs Plus Zeichen. Da siehst du den Inhalt des Arrays.

Mit F5 steppen kannst du Schritt für Schritt dich durch Schleife steppen. Dann siehst du, wenn k bei Treffer hochzählt.
Schau dir das mal in Ruhe so an. Damit kann man sehr gut überprüfen, wenn was nicht klappt wo die Zusammenhänge nicht passen.

Gruß Uwe



Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.