Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Über Listbox sichtbare Tabellenblätter wählen
21.01.2016 14:06:01
Henny
Hallo Zusammen,
ich habe eine UserForm über die ich eine Reihe von Auswahlen treffen kann. U.a gibt es zwei Optionbuttons für die Sprache (Englisch und Deutsch). Wähle ich Deutsch erscheint in der Listbox1 (auch in der UserForm) eine Reihe von deutschen Bezeichnungen. Wählt man Englisch erscheinen die Begriffe in Englisch in der Listbox. Die Auswahl der Listbox ist auf 3 Einträge begrenzt (mulitselect).
Nun zu meinem Problem: Für jeden der Begriffe (Bsp: Akkupacks, Halbleiter etc.) gibt es ein Tabellenblatt (mit gleichem Namen!). Ich möchte nun über die Auswahl in der Listbox auswählen, welche Tabellenblätter sichtbar ist.
Ich denke es müsste etwas in der Art sein:
Private Sub ListBox1_Click()
With Sheets(ListBox1.Text)
.Visible = True
.Select
End With
Unload Me
End Sub
Vorab Danke für die Hilfe
Henny

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über Listbox sichtbare Tabellenblätter wählen
21.01.2016 14:37:12
Werner
Hallo Henry,
Versuch mal
Dim x As Long
With Me.ListBox1
For x = 0 To .ListCount - 1
Sheets(.List(x)).Visible = IIf(.Selected(x), True, False)
Next x
End With
Welches Ereignis der Listbox zum Auslösen des Makros du verwenden willst musst du selbst entscheiden.
Gruß Werner

AW: Über Listbox sichtbare Tabellenblätter wählen
21.01.2016 19:17:56
Henny
Hallo Werner,
Danke für die schnelle Antwort, klappt aber leider nicht.
In der Zeile Sheets(.List(x)).Visible = IIf(.Selected(x), True, False)
kommt Laufzeifehler #9 "Index außerhalb des gültigen Bereichs".
Sonst noch eine Idee? Kann doch eigentlich nicht so schwer sein. Vielleicht geht es auch direkt über den Index (Bsp If Index = 1 Then Tabelle1.Visible = True)
Ich bin am Ende mit meinem VBA Latein :D

Anzeige
AW: Über Listbox sichtbare Tabellenblätter wählen
21.01.2016 20:33:48
Werner
Hallo Henry,
eine Vermutung, dass es mit deinen "Sprachversionen" zusammen hängt. Beispiel: Du hast Englisch ausgewählt, in deiner Listbox steht als Tabellenblattname "Seven" tatsächlich hat das Tabellenblatt aber den Namen "Sieben" dann läufst du in den Laufzeitfehler 9 weil das Tabellenblatt nicht gefunden wird.
Gruß Werner

AW: Über Listbox sichtbare Tabellenblätter wählen
21.01.2016 23:32:28
Henny
Hallo Werner,
Ich habe es auch in einem andern Worksheet versucht. da kommt der selbe Fehler :(
Blöd dass es bei Tabellenblattern nicht auch die Unterscheidung zwischen Name und Caption gibt.
Hast du noch eine Alternative wie ich es probieren könnte ?

Anzeige
AW: Über Listbox sichtbare Tabellenblätter wählen
22.01.2016 09:21:38
Werner
Hallo Henny,
stell doch mal deine Datei hier ein.
Gruß Werner

AW: Über Listbox sichtbare Tabellenblätter wählen
22.01.2016 12:44:01
Werner
Hallo Henny,
ich hab jetzt mal eine Testdatei angelegt. Beim Start der Userform (Schaltfläche auf Tabellenblatt1) wird die Userform geöffnet. Auf der Userform befindet sich eine Listbox in die nur die Tabellenblätter eingelesen werden, die ausgeblendet sind. Bei Auswahl von Tabellenblatt/Tabellenblättern in der Listbox und klick auf OK werden diese eingeblendet.
https://www.herber.de/bbs/user/102959.xlsm
Gruß Werner

AW: Über Listbox sichtbare Tabellenblätter wählen
22.01.2016 13:29:35
Henny
Hallo Werner,
der Unterschied ist, dass deine Listbox direkt die Name der Tabellenblätter anzieht.
Ich schreibe in die Listbox definierte Namen (die den Namen der Tabellenblättern zwar entspricht aber anscheinend doch einen Unterschied machen)
Habe dir mal soeine Datei zusammengebaut.
https://www.herber.de/bbs/user/102960.xlsm
Kurze Erkläuterung:
Optionbutton Deutsch schreibt definierte Werte (entsprechen den Tabellenblätternamen, sind aber selbst definiert worden) in die Listbox und nennt gleichzeitig die Tabellenblätter um.
Optionbutton Englisch macht das gleiche auf Englisch.
Die Auswahl der Listbox ist auf 3 begrenzt.
Nochmal mein Anliegen:
Je nach Sprache ändert sich die Auswahliste in der Listbox. Ich möchte das beim Anklicken der Werte in der Listbox automatisch nach dem Tabellenblatt gesucht wird, welches diesen Namen hat und es dann sichtbar machen.
Hintergrund: Die Tabellenblätter enthalten Fragen zu spezifischen Themen. Diese Themen werden in der Listbox (in der jeweiligen Sprache) aufgelistet.
Vielen Dank für dein Engagement.
Henny

Anzeige
AW: Über Listbox sichtbare Tabellenblätter wählen
24.01.2016 21:33:05
Henny
Hallo Werner,
so hab ichs jetzt übernommen. Vielen Dank nochmal für die Unterstützung!
Gruß Henny

AW: Danke für die Rückmeldung. o.w.T.
24.01.2016 21:49:00
Werner

AW: Danke für die Rückmeldung. o.w.T.
25.01.2016 11:14:39
Henny
Hallo Werner,
hast du auch noch eine Lösung wie die Tabellenblätter immer am Ende angezeigt werden?
Wenn ich sie hinzufüge werden sie vorne eingefügt.
Danke!
Henny

AW: Danke für die Rückmeldung. o.w.T.
25.01.2016 11:38:12
Werner
Hallo Henny,
meinst du neue Blätter per VBA am Ende erstellen?
Dann so: Sheets.Add After:=Sheets(Sheets.Count)
Gruß Werner

Anzeige
AW: Danke für die Rückmeldung. o.w.T.
25.01.2016 12:51:02
Henny
Hallo Werner,
die Tabellenblätter habe ich ja schon erstellt. Nur wenn ich sie jetzt über die Listbox auswähle dann werden sie vorne angezeigt. Ich haben 3 Tabellenblätter die immer angezeigt werden müssen. Und diese möchte ich gern am Anfang haben. Mich wundert es zwar, dass das nicht automatisch erfolgt (die 3 Tabellenblätter sind Tabelle 1, Tabelle2 und Tabelle3) aber vermutlich wird da irgendwie der index geändert. Im VBA Editor sind die Tabellenblätter auch komplett durcheinander.

AW: Danke für die Rückmeldung. o.w.T.
25.01.2016 13:20:25
Werner
Hallo Henny,
du kannst doch deine Tabellenblätter völlig frei nach deinen Bedürfnissen ordnen.
Rechtsklick auf den Tabellenblattreiter - kopieren oder verschieben.
Gruß Werner

Anzeige
AW: Danke für die Rückmeldung. o.w.T.
25.01.2016 15:17:27
Henny
Hallo Werner, ja das kann ich. Aber das ganze wird eine Vorlage für Kollegen und da darf beim hinzufügen von neuen Tabellenblättern (nur sichtbarkeit geändert) nicht das Deckblatt an 4. Stelle auftreten.

AW: Danke für die Rückmeldung. o.w.T.
25.01.2016 16:41:12
Werner
Hallo Henny,
also das wäre jetzt stochern im Nebel. Deine Testdatei, die du hochgeladen hattest, mit sämtlichen Code darin (incl. meinem) verändert absolut nichts an der Reihenfolge der Tabellenblätter. Solltest du in deiner Originaldatei weitere Makros drin haben, dann wären wir, wie bereits gesagt, beim Stochern im Nebel.
Weiter stellt sich die Frage, wie werden denn die neuen Blätter hinzugefügt, händisch durch Klick auf das Plus nach den Tabellenblattreiter? Dann wird das neue Blatt doch eh am Ende der bereits bestehenden Blättern angefügt.
Wenn in deiner Datei was durcheinander ist dann lege doch einfach mal eine neue, leere Datei an mit so vielen Blättern wie du brauchst. Dann benennt du die Blätter der neuen Datei nach deinen Bedürfnissen um. Anschließend kopiert du einfach Blatt für Blatt die Daten und Formatierungen der Originaldatei in die leeren Blätter der neuen Datei. Dann noch den VBA-Code in die neue Datei kopieren und gut sollte es sein.
Gruß Werner
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige