Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1704to1708
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

Doppelter Einträge per VBA verhindern mit Ausnahme

Doppelter Einträge per VBA verhindern mit Ausnahme
04.08.2019 23:34:35
Thomas
Hallo an alle Excel Nerds,
ich habe mir in den letzten Tage unter Zuhilfenahme des Internets eine umfangreiche Excel-Datei mit einigen Makros aufgebaut. Ich habe eigentlich zu allen Problemen die sich mir stellten eine Lösung oder zumindest einen Ansatz gefunden. Nun stecke ich allerdings tatsächlich fest.
Folgende Problematik ergibt sich aktuell bei mir:
Über ein Makro werden Daten aus verschiedenen Sheets in ein anderes Sheet eingefügt (Transpondernummer, Name, Datum, Uhrzeit,...). Das funktioniert soweit alles auch aller bestens.
Nun möchte ich per VBA verhindern, dass in dem Ziel-Sheet doppelte Einträge eingefügt werden.
Das habe ich folgendermaßen hinbekommen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("A1:A9999")
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Bereich, Target) Is Nothing Then Exit Sub
If WorksheetFunction.CountIf(Bereich, Target.Value) > 1 Then
MsgBox ("Doppelter Eintrag festgestellt")
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Target.Select
End If
End Sub
Wie gesagt, das funktioniert soweit tadellos. Sobald eine doppelte Transpondernummer versucht wird einzufügen (Diese stehen eben in der Spalte A), erscheint meine kleine Fehlermeldung.
Gibt es aber vielleicht eine Möglichkeit, diesen Code soweit anzupassen, dass ich Ausnahmen einbauen kann.
Bevor die Exceleigene Datenüberprüfung erwähnt wird; Diese habe ich bereits versucht zu verwenden, allerdings scheint diese bei per Makro eingefügten Datensätzen nicht zu greifen.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
einfach noch ein If
05.08.2019 08:21:07
Matthias
Hallo
 If MsgBox("Doppelter Eintrag festgestellt, jetzt löschen", vbYesNo) = vbYes Then
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
End If
Gruß Matthias
AW: einfach noch ein If
05.08.2019 09:19:55
Thomas
@Matthias
Deine Lösung funktioniert in dieser Form einwandfrei (Auch wenn ich erstmal per Try and Error herausfinden musste, wie genau ich ihn einsetze ;-) ). Ich danke dir schon mal für deine Bemühungen.
Aber gibt es wirklich keine Möglichkeit zwei bestimmte Werte von dieser Datenprüfung auszuschliessen?
AW: einfach noch ein If
05.08.2019 09:27:59
Matthias
Hallo
Nun wenn es nur um bestimmte Werte geht, kannst Du es ja in dieser Zeile hinzufügen:
z.B wenn Du die 23 nicht löschen willst
If Target.Value = "" OR Target.Value = 23 Then Exit Sub
Gruß Matthias
Anzeige
AW: einfach noch ein If
05.08.2019 09:34:12
Thomas
@Matthias
Ich habe schon geahnt, dass es in dieser Zeile noch irgendeine Möglichkeit geben muss.
Es funktioniert genau so wie ich es haben wollte. PERFEKT!
Vielen Dank.

147 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige