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
25.04.2026 18:59:45
AW: Prüfung auf Doppeleingabe Code macht Probleme
Hallo Daniel, zuerst einmal sorry, dass ich mich so spät melde.

Und vielen Dank für deine Antwort. Ich habe versucht, deinen Code einzubauen und die "Variable" vntItem in vntFundstelle zu ersetzen. Ich kenne mich mit Programmierung leider nicht aus, versuche aber zu verstehen.

Ergebnis: Tatsächlich kann ich jetzt die Zahlen (übrigens immer Ganzzahl Format Standard) eingeben, ohne Debugger. ABER eine Doppelteingabe wird lediglich gelöscht, ohne MSGBox -Hinweis.

Würdest du deinen Code in meinen einbauen bitte?

Parallel versuche ich mal, meine Original-Datei zu anonymisieren und hier einzustellen.

Danke Daniel.
VG Sabrina
Als Antwort auf diesen Beitrag
daniel
25.04.2026 01:18:24
AW: Prüfung auf Doppeleingabe Code macht Probleme
Hi
vermutlich ist das Problem, dass .Find nichts findet.
wenn du bei .Find mit LookIn:=xlvalues suchst, dann schaut VBA nicht in den unformatierten Zellwerten, sondern in den formatierten Zellwerten.
das ZählenWenns hingegen arbeitet als Formel immer mit den Unformatierten Zellwerten.
Dh. wenn du nach 1,234 suchst und in der durchsuchten Spalte diese Zahl nur als 1,23 angezeigt wird, kann dein .Find sie nicht finden, du müsstest dann nach 1,23 suchen.

mein Tipp: da du nur eine Spalte durchsuchst, kannst du mit Application.Match (Vergleich) arbeiten.
das arbeitet als Formel auch mit den unformatierten Zellwerten und du bekommst auch sofort die Position, wo sich das gesuchte Element befindet.

mit Application.Match bekommst du auch keinen Fehlerabbruch, wenn das Suchelement nicht gefunden wird, sondern einen Fehlerwert, auf den du prüfen kannst.

Beispiel:
dim vntFundstelle as variant

vntFundstelle = Application.Match(vntItem, wks.Range(conDetectionRangeAddress), 0)
if not IsError(vntFundstelle) Then Msgbox "Gefunden in Zeile " & vntFundstelle


und noch ein Tipp:
bei .Find sollte man immer möglichst viele Parameter angeben, zumidest LookAt und LookIn, und ggf auch Matchcase
gibt man die nicht an, dann verwendest du die zuletzt gemachte Einstellung, und das kann dann auch den Effekt haben, dass es manchmal funktioniert und machmal nicht.
Gruß Daniel

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.