Thema Datum  Von Nutzer Rating
Antwort
Rot Excel VBA - ComboBox Value zuweisen - Laufzeitfehler
24.10.2022 08:30:24 Detlef
NotSolved
24.10.2022 10:31:35 Mase
NotSolved
24.10.2022 11:15:16 Detlef
NotSolved
24.10.2022 11:33:18 Mase
NotSolved
24.10.2022 12:00:56 Detlef
Solved
24.10.2022 12:04:00 Mase
NotSolved

Ansicht des Beitrags:
Von:
Detlef
Datum:
24.10.2022 08:30:24
Views:
410
Rating: Antwort:
  Ja
Thema:
Excel VBA - ComboBox Value zuweisen - Laufzeitfehler

Hallo zusammen,

Ich habe eine Userform mit einer ComboBox.

Die ComboBox wird mit einem zweispaltigen Array gefüllt. (.ColumnCount = 2)

10 | Apfel
20 | Birne
30 | Zitrone

Der Value der ComboBox soll aus der ersten Spalte kommen. (.BoundColumn = 1)
Der anzuzeigende Text soll aus der zweiten Spalte kommen. (.TextColumn = 2)
Der Valuewert bzw. die erste Spalte soll innerhalb der ComboBox ausgeblendet werden.
Daher wird die Breite der ersten Spalte auf 0 gesetzt. (.ColumnWidths = "0;20")

Soweit funktioniert alles:
Das heißt, Ich wähle in der ComboBox einen Eintrag per Maus z.B. Birne aus und erhalte als Rückgabewert 20.

Nun Versuche Ich der ComboBox einen Value per VBA zuzuweisen, damit "Apfel" ausgewählt wird: (.Value = 10)

Daraufhin erhalte Ich einen Laufzeitfehler '380':
"Eigenschaft Value konnte nicht gesetzt werden. Ungültiger Eigenschaftenwert."

Mit .ListIndex kann man nur über den Index die jeweilige Zeile ansprechen. (.ListIndex = 0)

Für den aktuellen Anwendungsfall soll es jedoch ermöglicht werden, einen gültigen Value Wert (10,20,30) aus der ersten Spalte der ComboBox zuzuweisen.

Wie kann Ich der ComboBox einen Value aus der ersten "unsichtbaren" Spalte übergeben?


Option Explicit

Private Sub UserForm_Initialize()
    Dim varArray(2, 1) As Variant
    
    Me.ComboBox1.ColumnCount = 2
    Me.ComboBox1.BoundColumn = 1
    Me.ComboBox1.TextColumn = 2
    Me.ComboBox1.ColumnWidths = "0;20"
    
    varArray(0, 0) = 10
    varArray(1, 0) = 20
    varArray(2, 0) = 30
    varArray(0, 1) = "Apfel"
    varArray(1, 1) = "Birne"
    varArray(2, 1) = "Zitrone"
    
    Me.ComboBox1.List = varArray
    
    Me.ComboBox1.Value = 10 '<- führt zu einem Laufzeitfehler '308'
End Sub

Private Sub ComboBox1_Change()
    MsgBox ComboBox1.Value & ""
End Sub

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Excel VBA - ComboBox Value zuweisen - Laufzeitfehler
24.10.2022 08:30:24 Detlef
NotSolved
24.10.2022 10:31:35 Mase
NotSolved
24.10.2022 11:15:16 Detlef
NotSolved
24.10.2022 11:33:18 Mase
NotSolved
24.10.2022 12:00:56 Detlef
Solved
24.10.2022 12:04:00 Mase
NotSolved