21.07.2020, 07:03
Hallo zusammen,
ich hätte eine frage bezüglich einer MsgBox.
Kann man eine MsgBox so einstellen das man die Meldung nicht mit ENTER bestätigen kann sondern z.b. nur mit der Maus?
Mein Problem ist folgendes: Ich Scanne Barcodes in eine Excel liste und bei Doppelten Werten kommt eine Akustisches Signal und eine Meldung das dieser Barcode schon gescannt wurde.
Dieser Barcode enthält am ende die Funktion ENTER sodass er in die nächste Zeile nach unten springt. Dies ist auch zwingend notwendig.
Jedoch wenn die Meldung kommt das ein doppelter Wert eben eingetragen wird und ich danach einfach weiter Scanne wird die Meldung eben mit ENTER einfach bestätigt.
Hat hier jemand zufällig eine Idee wie ich dies vermeiden kann?
Hier mein Code im Workseet:
Danke & viele Grüße.
ich hätte eine frage bezüglich einer MsgBox.
Kann man eine MsgBox so einstellen das man die Meldung nicht mit ENTER bestätigen kann sondern z.b. nur mit der Maus?
Mein Problem ist folgendes: Ich Scanne Barcodes in eine Excel liste und bei Doppelten Werten kommt eine Akustisches Signal und eine Meldung das dieser Barcode schon gescannt wurde.
Dieser Barcode enthält am ende die Funktion ENTER sodass er in die nächste Zeile nach unten springt. Dies ist auch zwingend notwendig.
Jedoch wenn die Meldung kommt das ein doppelter Wert eben eingetragen wird und ich danach einfach weiter Scanne wird die Meldung eben mit ENTER einfach bestätigt.
Hat hier jemand zufällig eine Idee wie ich dies vermeiden kann?
Hier mein Code im Workseet:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("A5:A3005")
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
Beep
Application.OnKey "{Return}", ""
MsgBox ("Doppelter Eintrag nicht zulässig")
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Target.Select
End If
Dim objRange As Range, objCell As Range
Set objRange = Intersect(Target, Range("A5:A3005"))
If Not objRange Is Nothing Then
Application.EnableEvents = False
For Each objCell In objRange
If Not IsEmpty(objCell.Value) Then
objCell.Offset(0, 1).Value = Now
Else
objCell.Offset(0, 1).Value = Empty
End If
Next
Application.EnableEvents = True
End If
End Sub
Danke & viele Grüße.