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

Laufzeitfehler 381 bei Löschen Wert in Combobox

Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 09:20:07
George
Hallo zusammen
Bin wieder mal auf ein Problem gestossen, das meine vba-Kenntnisse überfordert.
Mittels nachfolgendem Makro weise ich der ComboBox16 den ersten Wert der ComboBox17 (hat 2 _
Spalten) zu. Soweit so gut.

Private Sub ComboBox17_Change()
Me.ComboBox17.SetFocus
a1 = Me.ComboBox17.ListIndex
Me.ComboBox16.Value = Me.ComboBox17.List(a1, 1)
End Sub

Wenn ich nun durch nachfolgendes Makro die Eingabe in ComboBox17 lösche, müsste auch der Wert in ComboBox16 wieder gelöscht werden - soweit meine Theorie.

Private Sub CommandButton3_Click()
ComboBox17.Clear
Call UserForm_Initialize
End Sub

Es erscheint jedoch der Lauftzeitfehler 381 "Eigenschaft List konnte nicht abgerufen werden. Index des Eigenschaftenfelds ungültig".
Ich habe bereits versucht, die ComboBox16 durch ein Textfeld zu ersetzen, hier kommt die selbe Meldung. Aus der Online-Hilfe werde ich leider nicht schlau.
Für einen Lösungsansatz wäre ich Euch sehr dankbar.
Beste Grüsse,
George

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 09:54:58
Thorsten_Z
Hallo Georg,
versuch mal anstatt ComboBox17.Clear, ComboBox17 = ""
Gruß
Thorsten

AW: Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 10:08:17
George
Hallo Thorsten
Vielen Dank für Deine Antwort. Leider funktioniert dies auch nicht, er markiert mir folgende Zeile (und bringt selbe Fehlermeldung):
Me.ComboBox16.Value = Me.ComboBox17.List(a1, 1)
Ich hatte mir überlegt, ob es allenfalls noch an den Eigenschaften der ComboBoxen liegen könnte und hatte auch hier schon einiges herumprobiert, eben auch ohne Erfolg.
Ohne die ComboBox16 (und ohne "Me.ComboBox16.Value = Me.ComboBox17.List(a1, 1)") lässt sich der Wert in Combobox17 übrigens löschen.
Hättest Du allenfalls noch eine andere Idee?
Vielen Dank und Gruss,
George

Anzeige
AW: Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 10:09:34
George
Hallo Thorsten
Vielen Dank für Deine Antwort. Leider funktioniert dies auch nicht, er markiert mir folgende Zeile (und bringt selbe Fehlermeldung):
Me.ComboBox16.Value = Me.ComboBox17.List(a1, 1)
Ich hatte mir überlegt, ob es allenfalls noch an den Eigenschaften der ComboBoxen liegen könnte und hatte auch hier schon einiges herumprobiert, eben auch ohne Erfolg.
Ohne die ComboBox16 (und ohne "Me.ComboBox16.Value = Me.ComboBox17.List(a1, 1)") lässt sich der Wert in Combobox17 übrigens löschen.
Hättest Du allenfalls noch eine andere Idee?
Vielen Dank und Gruss,
George

Anzeige
AW: Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 10:38:43
Thorsten_Z
Hallo Georg,
nein, tut mir leid. Eine andere Idee habe ich nicht. Da bin ich (noch) zu unwissend! :-)
Allenfalls stoße ich mich ein wenig an dem "Me" von Me.combobox16.... usw. . Vlt. lässt du das "Me" einfach mal weg.
Ansonsten bin ich ich echt "raus aus der Nummer". Tut mir leid!
Gruß
Thorsten

AW: Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 10:47:50
George
Hi Thorsten
Vielen Dank trotzdem!
Allenfalls hat jemand anders noch einen Lösungsansatz?
Beste Grüsse,
George

AW: Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 11:51:21
Luschi
Hallo Georg,
Steuerelemente in Userforms reagieren genauso auf Vba-Code wie Zellen in den Tabellen.
Durch 'ComboBox17.Clear' wird automatisch das 'ComboBox17_Change()-Ereignis ausgelöst.
In den Tabellen kann man per 'Application.EnabledEvents = False' das Ereignis unterdrücken.
In den Userforms hat diese Einstellung leider keine Wirkung und etwas Anderes gibt es nicht.
Alse muß man mit einer Hilfsvariable (hier 'xOK' als Programmierer selbst dafür sorgen, das das _ Ereignis nicht ausgelöst wird. Deshalb so:

Option Explicit
Dim xOk As Boolean
Private Sub ComboBox17_Change()
If xOk Then
Me.ComboBox17.SetFocus
a1 = Me.ComboBox17.ListIndex
Me.ComboBox16.Value = Me.ComboBox17.List(a1, 1)
End If
End Sub
Private Sub CommandButton3_Click()
xOk = False
ComboBox17.Clear
Call UserForm_Initialize
xOk = True
End Sub
Grtuß von Luschi
aus klein-Paris

Anzeige
AW: Laufzeitfehler 381 bei Löschen Wert in Combobox
28.10.2013 15:09:23
George
Hallo Luschi,
herzlichen Dank, es hat mit dem Lösungsansatz einer zusätzlichen Variable bestens funktioniert!
Ich musste es noch ein wenig abändern, da der Wert in ComboBox17 mit dem Klick gelöscht wurde, in ComboBox 16 aber immer stehengeblieben ist:
1. Schritt: Beim initialisieren (dies ist der 1. Schritt, habe ich vorhin weggelassen): xOK = True
2. Schritt: (wie in Deiner Lösung)
Private Sub ComboBox17_Change()
If xOk Then
Me.ComboBox17.SetFocus
a1 = Me.ComboBox17.ListIndex
Me.ComboBox16.Value = Me.ComboBox17.List(a1, 1)
End If
End Sub
3. Schritt: Hier habe ich zusätzlich noch den Inhalt von ComboBox16 gelöscht. Mit .Clear hat es nicht funktioniert (?)
Private Sub CommandButton3_Click()
xOk = False
ComboBox17.Clear
ComboBox16.Value = ""
xOk = True
Call UserForm_Initialize    'nochmals aufrufen, um alle Eingaben nochmals zu prüfen
End Sub

Du hast meinen (Arbeits-)Tag gerettet, vielen Dank!
Beste Grüsse,
George
Anzeige

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige