Clever-Excel-Forum

Normale Version: ComboBox und OptionButton in Abhängigkeit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

folgendes Problem:

Ich benötige eine Möglichkeit, bei der ich die Werte, die mir eine ComboBox zurückgibt auch in Abhängigkeit des gewählten OptionButton zurückgegeben werden:

[
Bild bitte so als Datei hochladen: Klick mich!
]


Ich möchte, dass in C11 bei Auswahl des OptionButton "Variante 1" die Werte der Spalte C und bei "Variante 2" die Werte der Spalte D für die jeweilige Auswahl der ComboBox angezeigt werden (ComboBox kann A, B, C oder Gesamt wählen). Die ComboBox funktioniert soweit, leider nur für Variante 1. Ich benötige den Code für die OptionButtons sowie die evtl. Anpassungen des Codes der ComboBox.

Anbei der Code für "Tabelle 1":

Code:
Private Sub ComboBox1_Change()
Dim WAN As Long

  Select Case ComboBox1.Text
     Case "A": WAN = Range("C3").Value
     Case "B": WAN = Range("C4").Value
     Case "C": WAN = Range("C5").Value
     Case "Gesamt": WAN = Range("C6").Value
     
  End Select
     
  Range("C11").Value = WAN
 
End Sub

Private Sub OptionButton1_Click()

End Sub

Private Sub OptionButton2_Click()

End Sub

Und der Code für "DieseArbeitsmappe":
Code:
Private Sub Workbook_Open()
  Worksheets("Tabelle1").ComboBox1.List = _
     Array("A", "B", "C", "Gesamt")
End Sub

Datei liegt bei. Mir wäre eine Lösung lieb, welche den Grundaufbau meines Codes beibehält. Danke.

Gruß

Christian
Hallo Christian,

(20.01.2017, 16:02)TaylorGangHRO schrieb: [ -> ]Mir wäre eine Lösung lieb, welche den Grundaufbau meines Codes beibehält. Danke.

damit kann ich leider nicht dienen. Wink
Private Sub ComboBox1_Change()
 MyLookup
End Sub

Private Sub OptionButton1_Click()
 MyLookup
End Sub

Private Sub OptionButton2_Click()
 MyLookup
End Sub

Private Sub MyLookup()
 If Me.ComboBox1.ListIndex > -1 Then
   Range("C11").Value = Application.VLookup(ComboBox1.Text, Range("B3:E6"), OptionButton1.Value + 3, 0)
 End If
End Sub
Gruß Uwe
Vielen Dank, das funktioniert ja schon mal wunderbar.

Kannst du mir den Code kurz erklären? Funktioniert der auch mit Excel 2007, habe gerade nur privat ausprobiert mit 2013, brauche das aber für die Arbeit.  Und wie müsste ich ihn erweitern, wenn ich anstatt 3 Standorte 10 habe und anstatt 2 Varianten 5?
Und nehmen wir an, ich würde zu jedem Standort eine weitere Datentabelle haben in der bspw. die Werte für WLAN drin stehen und diese wäre auf einem anderen Datenblatt hätte auch verschiedene Varianten pro Standort und ich würde am Ende über die ComboBox den WLAN wert je Standort unter dem WAN Wert wollen

Wenn ich nachher mal am PC bin, dann würde ich meine Beispieldatei anpassen, sodass du weißt, wie ich mir das vorstelle.

Trotzdem zunächst vielen Dank. :D
Hallo Christian,

(21.01.2017, 11:38)TaylorGangHRO schrieb: [ -> ]Kannst du mir den Code kurz erklären? Funktioniert der auch mit Excel 2007, habe gerade nur privat ausprobiert mit 2013, brauche das aber für die Arbeit.
funktioniert auch mit 2007.
Application.VLookup(ComboBox1.Text, Range("B3:E6"), OptionButton1.Value + 3, 0) ist die VBA-Variante der Funktion SVERWEIS(). Das ließe sich auch ohne VBA realisieren, wenn man die ComboBox und die OptionButtons mit Zellen verknüpft. Dann aber besser mit INDEX(VERGLEICH(ZEILE();VERGLEICH(SPALTE()).

(21.01.2017, 11:38)TaylorGangHRO schrieb: [ -> ]Wenn ich nachher mal am PC bin, dann würde ich meine Beispieldatei anpassen, sodass du weißt, wie ich mir das vorstelle.
Dann warten wir mal so lang.

Gruß Uwe
Hallo Uwe,

das hatte ich dem TE hier schon versucht zu erklären: clever-excel-forum
Hallo,

Entschuldigung für die späte Rückmenldung, aber ich hatte am WE keine Zeit. Anbei die angepasste Beispieldatei.

Gruß
Hallöchen,

das ist im von atilla verlinkten Thread ausreichend beantwortet?
Ansonsten könntest Du die Varianten je nach Auswahl über Offsets erreichen, im Prinzip
Range("A2").Offset(0,1) oder Range("A2").Offset(0,2)

Du müsstest allerdings noch prüfen, welche der beiden Varianten auf dem jeweiligen Blatt gewählt ist.
OptionButton1_Click()
Würde Dir nur helfen können, wenn Du nach dem Öffnen der Datei auf selbige klickst. Wenn Du gleich in der Combo was auswählst, kennt Excel ohne entsprechende Prüfung den aktuellen Stand nicht.

Alternativ könntest Du die Varianten etwas weiter nach rechts legen und in Spalte B immer die gewählte Variante ausgeben. Also DU klickst eine Option an, und dann werden die zugehörigen Werte nach Spalte B geschrieben. Dann kannst DU jederzeit mit der Combo was auswählen.