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.

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
Antworten 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
Antworten 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?
Antworten 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
Antworten 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
Antworten 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
Antworten Top
#7
Hallo Timo,

(12.09.2016, 10: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
Antworten Top
#8
Hallo Timo,

(12.09.2016, 10: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
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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