Laufzeitfehler 381 bei Falsch-Eingabe in ComboBox

Hallo zusammen,

nach einer Stunde googeln möchte ich mich nun doch trauen, hier um Hilfe zu fragen :smile:

Ich habe ein Formular mit zwei ComboBoxen (ComboBox1 und ComboBox 2). Den Boxen habe ich verschiedene Listen zugeordnet.

Wenn ich nun in eine der Boxen einen Wert eintippe, der nicht in der Liste vorhanden ist, kommt der Laufzeitfehler 381 („Eigenschaft Column konnte nicht abgerufen werden. Index des Eigenschaftenfelds ungültig.“).

Gibt es eine Code-Zeile für das Makro, die erkennt, wenn in der ComboBox ein Wert steht, der falsch ist (also nicht in der zugeordneten Liste vorkommt) und dann entsprechend z. Bsp. eine MsgBox-Nachricht öffnet und anschließend wieder zurück springt, um die Eingabe zu wiederholen?

Das Makro soll „idiotensicher“ sein, wenn sich also ein Nutzer im Formular vertippt, nicht gleich bei dieser Fehlermeldung erschrickt.

Vielen Dank vorab für eure Hilfe.

Viele Grüße
Christian

Moin, Christian,

schau mal bei den Ereignissen für die Combobox nach, da sollte es ein „Wert nicht in Liste“ oder so ähnlich geben. In das Ereignis schreibst Du rein, wie der Dialog bei Fehleingabe reagieren soll.

Gruß Ralf

Hallo Christian,

nach einer Stunde googeln möchte ich mich nun doch trauen,
hier um Hilfe zu fragen :smile:

Frechdachs, denkst dir wohl auch frechheit siegt? Nix da, 2 Std Recherche sind das absolute Minimum um hier mal Piep zu sagen!
*grien*
Naja, das ist halt meine Art dir danke zu sagen daß du zuerst recherchiert hast BEVOR du hier anfragst. Machen leider nicht alle :frowning:
Danke dafür.

Ich habe ein Formular mit zwei ComboBoxen (ComboBox1 und
ComboBox 2). Den Boxen habe ich verschiedene Listen
zugeordnet.

ComboBoxen aus Steuerelemttoolbox (ActiveX) oder Formular?
Wie ordnest du da Listen zu, gibt verschiedene Wege.
Und wenn Steuerelemnt, stehen die in einer Userform oder in einem tabellenblatt?

Wenn ich nun in eine der Boxen einen Wert eintippe, der nicht
in der Liste vorhanden ist, kommt der Laufzeitfehler 381
(„Eigenschaft Column konnte nicht abgerufen werden. Index des
Eigenschaftenfelds ungültig.“).

Das passiert ohne daß da Code vorhanden ist? Wenn Code, dann zeige ihn.

Gibt es eine Code-Zeile für das Makro, die erkennt, wenn in
der ComboBox ein Wert steht, der falsch ist (also nicht in der
zugeordneten Liste vorkommt) und dann entsprechend z. Bsp.
eine MsgBox-Nachricht öffnet und anschließend wieder zurück
springt, um die Eingabe zu wiederholen?

Zeige den Code, wenn von Belang auch die mappe dazu, hochladen mit file upload o.ä. s. FAQ:2606

Das Makro soll „idiotensicher“ sein, wenn sich also ein Nutzer
im Formular vertippt, nicht gleich bei dieser Fehlermeldung
erschrickt.

Kein Akt, bauen wir halt in die Fehlerbehandlungsroutine den Aufruf von Enstapnnungsmusik und schönen Bildern auf dem PC mit ein um dann sanft die böse Nachricht anzuzeigen :smile:

Gruß
Reinhard

Gruß
Reinhard

Hallo Reinhard,

vielen Dank für deine Antwort.

  1. ComboBoxen aus Steuerelemttoolbox in UserForm

  2. Code:

Private Sub CommandButton1_Click()
If ComboBox1.Text = „“ And ComboBox2.Text = „“ Then
info = MsgBox("Bitte Wert eingeben“, vbCritical, „Eingabe“)
Else
If ComboBox1.Text = „“ Then
Wert = ComboBox2.Column(0)
ElseIf ComboBox2.Text = „“ Then
Wert = ComboBox1.Column(0)
End If
ActiveCell = Wert
Unload Me
End If
End Sub

  1. Erklärung:

Ich will aus einer Materialliste in ComboBox1 den Namen bzw. in ComboBox2 die Material-Nr. eintippen können. Wenn ich mich vertippe (Zahlendreher o.ä.), soll nicht gleich der Laufzeitfehler kommen, sondern einfache eine Msgbox mit Hinweis und danach wieder zurückspringen, um die Eingabe zu wiederholen (bei entspannter Musik :smiley: ).

Vielen Dank vorab für deine Hilfe :smile:

Gruß
Christian