Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ComboBox und OptionButton in Abhängigkeit
#1
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


Angehängte Dateien
.xlsm   Makro Vorlage2.xlsm (Größe: 25,38 KB / Downloads: 6)
Antworten Top
#2
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
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
Hallo Uwe,

das hatte ich dem TE hier schon versucht zu erklären: clever-excel-forum
Gruß Atilla
Antworten Top
#6
Hallo,

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

Gruß


Angehängte Dateien
.xlsm   Makro Vorlage2.xlsm (Größe: 35,95 KB / Downloads: 4)
Antworten Top
#7
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste