Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

MsgBox nicht mit "ENTER" wegdrücken können.
#1
Brick 
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.
Antwortento top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top
#3
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.
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste