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

Zweiten Wert aus ComboBox auf Userform l

Zweiten Wert aus ComboBox auf Userform l
07.05.2022 17:01:25
Frank
Hallo zusammen.
Ja ich weiß, wurde schon gefühlt über 100-mal gefragt und beantwortet. Aber ich habe das Gefühl, dass es dabei um CBs auf Arbeitsblätter ging. Bei mir wirft folgender Code einen Eigenschaften- bzw. Indexfehler aus.
X = combobox1.list(combobox1.listindex, 1) (beispielhaft)
Meine ComboBox wird 2-spaltig durch eine Datenbank Abfrage mit additem gefüllt und ist an kein tabellenblatt gebunden. Die Daten sind auch in der CB, denn man kann sie sehen. (Foto)
Ich benötige nun aber den 2. Wert (ist die ID) aus der CB in einer Variablen.
Weiß jemand da einen Rat?
Codeauszug:

Private Sub UserForm_Initialize()
ThisWorkbook.Worksheets("Start").Activate
ThisWorkbook.Worksheets("dbcache").Cells.ClearContents
With Me.cbKunden
.ColumnCount = 2
.BoundColumn = 1
Call Kunden_Abfragen
.Font.Size = 10
.ListRows = 30
.ListIndex = 0
End With
Hier kommt der Fehler 13 Typen unverträglich ( aber auch schon 423 Objekt erforderlich, ist unterschiedlich:

Private Sub cbKunden_Change()
Dim Kunde As String
Dim Wert As Variant
Me.ListBox1.Clear
Me.txtArtikelname.Value = ""
Me.txtArtikelnummer.Value = ""
Kunde = UCase(Left(Me.cbKunden.Value, 3))
Wert = Me.cbKunden.List(Me.cbKunden.ListIndex, 0) --------> Zeile mit Fehler
Wert = Me.cbKunden.Column(1).Value
With Me.cbKunden
Wert = Me.cbKunden.ListIndex(Me.cbKunden.ListIndex, 0).Value --------> Zeile mit Fehler
End With
Call ConnectToSQLite(Kunde, bolSort)
End Sub
Habe zum Testen verschiedene Varianten probiert, daher ist der Code doppelt.
Userbild

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zweiten Wert aus ComboBox auf Userform l
07.05.2022 18:36:02
Daniel
Hi
Prinzipiell ist dein Code schon richtig:

X = Combobox1.List(Combobox1.Listindex,1)
Der Fehler kommt, wenn du für die Zeilen- oder Spaltennummer einen ungültigen wert einsetzt.
Dieser muss zwischen 0 und Anzahl Zeilen/Spalten -1 liegen.
Dies ist dann der Fall, wenn in der Combobox1 noch kein Wert ausgewählt wurde oder der Anwender einen Wert eingetragen hat, der in der Liste nicht vorkommt.
Dann ist der ListIndex = -1 und somit außerhalb des gültigen Bereichs für .List().
Da du das Change-Event verwendest, welches bei jeder Änderung anspricht (auch beim befüllen der Liste) kommt dieser Fall immer mal vor.
Du müsstest noch eine Sicherheitsabfrage einbauen, ob der Anwender auch einen Eintrag ausgewählt hat:

If Combobox1.ListIndex >= 0 then
X = Combobox1.List(Combobox1.Listindex,1)
End if
Gruß Daniel
Anzeige
AW: Zweiten Wert aus ComboBox auf Userform l
07.05.2022 19:00:09
Frank
Hallo Daniel,
klingt logisch und daher werde ich das mal austesten. Vielen Dank schon mal.
AW: Zweiten Wert aus ComboBox auf Userform l
07.05.2022 19:10:34
Frank
Hallo vielen Dank. Es funktioniert jetzt durch die Sicherheitsabfrage ohne Probleme.
Daniel hatte Recht. Das Change Event wird schon beim initialisieren der UF aufgerufen. Da hat noch niemand etwas ausgewählt.
Code jetzt:

Private Sub cbKunden_Change()
Dim Kunde As String
Me.ListBox1.Clear
Me.txtArtikelname.Value = ""
Me.txtArtikelnummer.Value = ""
Kunde = UCase(Left(Me.cbKunden.Value, 3))
If Me.cbKunden.ListIndex >= 0 Then
intKID = Me.cbKunden.List(Me.cbKunden.ListIndex, 1)
End If
Call ConnectToSQLite(Kunde, bolSort)
End Sub
Vielen Dank für den Tipp und schönes Wochenende.
Anzeige
AW: Zweiten Wert aus ComboBox auf Userform l
07.05.2022 18:47:32
ralf_b
und weils so schön ist.... das mit dem With schreibt man so

With Me.cbKunden
Wert = .List(.ListIndex, 0) --------> Zeile mit Fehler
Wert = .Column(1).Value
End With

AW: Zweiten Wert aus ComboBox auf Userform l
07.05.2022 18:58:55
Frank
Hallo Ralf,
das weiß ich. Da ich aber immer wieder den Code wegen dieses Fehlers verändert habe (war vorher ohne With), ist das noch übriggeblieben.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige