Clever-Excel-Forum

Normale Version: MsgBox nicht mit "ENTER" wegdrücken können.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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:
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.
Moin!
Nimm statt der MsgBox ein kleines UserForm mit einem Label mit dem Meldungstext.
Erstelle einen OK-Button mit dem zugewiesenen Code Unload Me
Jetzt setzt Du in den Eigenschaften des Buttons
TabIndex auf 1 und
TabStop auf False

Gruß Ralf
Danke für deine Antwort.

Ich habe jetzt die Userform erstellt und den Code für den Button angelegt.
Aber wie muss ich meinen Code umschreiben das er bei einem Fehler die Userform aufruft und nicht die MsgBox?

Danke & viele Grüße

EDIT:

Ok sry hab es gefunden.

Hab einfach UserForm1.Show anstelle von MsgBox hingeschrieben.