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 22:58:42
AW: Eigentlich reicht es, ...
Da habe ich doch glatt erst einmal geschaut, wo Snooker läuft - sind ja ganz schön viele rote Kugeln 😂

Hallo Case - passt perfekt!

ich habe deinen Code übernommen, den von Daniel bekomme ich einfach nicht korrekt eingefügt (da fehlen mir einfach die Programmierkenntnisse - obwohl Daniel es ja gut beschrieben hat).

Schon eingefügte Dubletten interessieren mich nicht, da jeden morgen das Blatt geleert wird.

Morgen werde ich den Code auf das Original eintragen. Sowie den berteits vorhandenen in "dieseArbeitsmappe" mit einbinden, falls ich das hinkriege. Ich melde mich morgen noch einmal.

Vielen Dank an Daniel und an dich - habt alle einen schönen Abend.

LG Sabrina
Als Antwort auf diesen Beitrag
Case
25.04.2026 22:19:35
Eigentlich reicht es, ...
Moin, :-)

... wenn du Daniels Vorschlag so umsetzt (in deiner Beispieldatei getestet): ;-)

MsgBox "Lfd. Nr. " & vntItem & " ist bereits in  " & wks.Name & vbNewLine & "in A" & Application.Match(vntItem, wks.Range(conDetectionRangeAddress), 0) + 9 & "  vorhanden!", vbExclamation, "A C H T U N G"


Oder auch so: ;-)

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wksSheet As Worksheet
Dim blnTMP As Boolean
Dim rngRange As Range
Dim varTMP As Variant
On Error GoTo Fin
Set Target = Intersect(Target, Sh.Range("A10:A200"))
If Not Target Is Nothing Then
Application.EnableEvents = False
For Each rngRange In Target
If rngRange <> "" Then
For Each wksSheet In Worksheets
varTMP = Application.Match(rngRange.Value, wksSheet.Range("A10:A" & wksSheet.Cells(Rows.Count, 1).End(xlUp).Row), 0)
If Not IsError(varTMP) Then
If wksSheet.Name <> Sh.Name Or varTMP + 9 <> rngRange.Row Then
MsgBox "Lfd. Nr. " & rngRange.Value & " schon vorhanden in '" & wksSheet.Name & "' A" & varTMP + 9, vbExclamation
Application.Undo
blnTMP = True
Exit For
End If
End If
Next wksSheet
End If
If blnTMP Then Exit For
Next rngRange
End If
Fin:
Application.EnableEvents = True
End Sub


Da ist jetzt noch nicht berücksichtigt, wenn schon in den eingefügten Daten Dubletten sind. Brauchst du das auch? ;-)

Bin gerade beim Snooker schauen - deshalb nur so. ;-)

Servus
Case
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.