Tabellenwechsel per Dropdown-ComboBox
#1
Hallo Clever-Excel-Forum,

ich bin neu im Umgang mit Excel und muss im Rahmen meines Berufes eine Wochenliste erstellen.

Die Liste soll dazu genutzt werden Monteure und Autos auf Bauvorhaben aufzuteilen. Soweit ist auch alles fertig,
bis auf der besondere Wunsch meines Chefs.

Die Datei soll 52 einzelne Worksheets besitzen, für jede Kalenderwoche eine Tabelle. Nun möchte ich 51 Stück ausblenden
und mit der übrigen per Dropdown-Combobox auf die einzelnen Worksheets springen.

Die Sheets haben die Nummerierung der Kalenderwochen (KW1;KW2;...KW52.)

Momentan arbeite ich nur mi zwei Kalenderwochen um erstmal die Funktion rauszubekommen.
Ich habe bereits Comboboxen angelegt und diesen Code eingegeben:

Code:
Private Sub ComboBox1_Change()

Dim sht As String

sht = Worksheets("KW1").ComboBox1.Value
Worksheets(sht).Activate

End Sub
Funktioniert auch. Allerdings steht in der Tabelle KW1 auch der Text "KW1". Wenn ich per Dropdown KW2 auswähle gelange ich auch auf die Tabelle 2 (KW2), doch der Text in der Combobox bleibt bei KW1. Um zurück auf KW1 zu kommen muss ich zunächst nocheinmal auf Tabelle 2, KW2 auswählen um KW1 auswählen zu können.

Ich möchte das sich der Name in der ComboBox bei Tabellenwechsel auf die getroffene Auswahl ändert.

Notfalls wäre auch ein Code der sofort den Sheetnamen übernimmt praktisch, ich weiß allerdings nicht wie.

Liebe Grüße Timo
Top
#2
Hallo Timo,

hier mal zwei Varianten:

Code:
Private Sub UserForm_Activate()
 Dim i As Long
 For i = 1 To 52
   ComboBox1.AddItem i
 Next i
End Sub

Private Sub ComboBox1_Change()
 Worksheets("KW" & ComboBox1.Value).Activate
End Sub

oder

Code:
Private Sub UserForm_Activate()
 Dim i As Long
 For i = 1 To 52
   ComboBox1.AddItem "KW" & i
 Next i
End Sub

Private Sub ComboBox1_Change()
 Worksheets(ComboBox1.Value).Activate
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • TimoK
Top
#3
Hallo Uwe,

danke schonmal für deinen Versuch zu helfen.
Aus deinen Codes stellen sich mir folgende Fragen:

"1 to 52" setzt diese Codezeile vorraus das ich 52 Sheets habe? Momentan übe ich die Funktion mit 2 sheets.
Meine Sheets heißen KW1 und KW2. In einer dritten Tabelle die ausgeblendet ist befinden sich Listen für Dropdown-Menüs die ich für die
Wochenliste benötige und auch eine Dropdown Auswahl für die Combobox (ListFillRange =KW sprich KW1;KW2;KW3...).

Die Bezeichnung "KW" in deinen Codes muss ich anpassen?
Top
#4
Hallo Timo,

wenn Du die ComboBox anderweitig füllst, lässt Du das Füllen aus meinen Vorschlägen weg und nimmst dann eben nur
Private Sub ComboBox1_Change()
Worksheets(ComboBox1.Value).Activate
End Sub
Gruß Uwe
Top
#5
Ist dadurch mein Problem denn gelöst? Kann ich die Dropdown-Auswahl der ComboBox denn auch anders füllen als mit einer externen Liste?
Zum Beispiel direkt mit den Sheet-Namen?

Muss ich meinen und deinen Code dann kombinieren?

Danke für die Hilfe
Top
#6
Durch den zuletzt genannten Code funktioniert zwar der Tabellenwechsel, aber der Name in der ComboBox stimmt nicht mit dem Sheet-Namen überein.

LG Timo
Top
#7
Hallo Timo,

(12.09.2016, 11:05)TimoK schrieb: Ist dadurch mein Problem denn gelöst? Kann ich die Dropdown-Auswahl der ComboBox denn auch anders füllen als mit einer externen Liste?
Zum Beispiel direkt mit den Sheet-Namen?

Muss ich meinen und deinen Code dann kombinieren?

Danke für die Hilfe

1. Ja. Du musst Dich entscheiden: Es geht entweder mit ListFillRange oder ohne ListFillRange mit Zuweisung per Code wie bei meinen Vorschlägen.
2. Ja. Siehe Vorschlag 2 meiner ersten Antwort.
3. Du musst nicht. Du entscheidest, an welcher Schraube Du drehst, damit es am Ende passt. Wink

Gruß Uwe
Top
#8
Hallo Timo,

(12.09.2016, 11:26)TimoK schrieb: Durch den zuletzt genannten Code funktioniert zwar der Tabellenwechsel, aber der Name in der ComboBox stimmt nicht mit dem Sheet-Namen überein.

LG Timo

das kann ich bei mir nicht nachvollziehen. Da wäre jetzt eine Beispieldatei gut.

Gruß Uwe
Top
#9
Dankeschön.

Ein Tabellenwechsel ist mit allen hier im Thread genannten Codes möglich. Allerding löst sich mein Problem nicht.
Wenn ich auf Tabelle1 in der Combobox KW2 anklicke gelange ich auf Tabelle2, soweit so gut. In der ComboBox auf Tabelle2 steht dann
aber wieder KW1 statt KW2 wie zuvor ausgewählt. Das würde in der Wochenplanung riesige Fehler verursachen da der Nutzer dann denkt er seie in KW1 obwohl ihm Tabelle2 angezeigt wird.

Liebe Grüße Timo
Top
#10
Hallo Timo,

wenn in beiden ComboBoxen das gleiche angezeigt werden soll, dann so


Code:
Worksheets("KW2").ComboBox1.Value = Worksheets("KW1").ComboBox1.Value


Gruß
Ich
Top


Gehe zu:


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