Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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
Inhaltsverzeichnis

Per Userform angezeigte Sheets auswählen können

Per Userform angezeigte Sheets auswählen können
14.05.2018 11:22:13
Franz
Hallo,
meine Frage bezieht sich auf eine von mir gestellte Frage vor 2 Wochen:
https://www.herber.de/cgi-bin/callthread.pl?index=1622790#1622790
Ich kann sie nur leider nicht mehr bearbeiten.
Ich habe ein Userform erstellt mit dessen Hilfe ich ein Sheet auswählen kann.

Private Sub UserForm_Activate()
Dim i As Integer
For i = 1 To Sheets.Count
If Sheets(i).Visible  2 Then ListBox1.AddItem Sheets(i).Name
Next i
End Sub
Private Sub ListBox1_Click()
With Sheets(ListBox1.Text)
.Visible = True
.Select
End With
Unload Me
End Sub


Dieses wird auch wie folgt aufgerufen:
Sub Workbook_Open
UserForm1.Show
End Sub

Nun würde ich gerne die Sheets bündeln oder zusammenfassen, sodass ich mit der Listbox eigentlich nur noch die Sprache auswählen kann (soll heißen: alle englischen Sheets unter einem Namen gespeichert, alle deutschen unter dem anderen). Der VBA Code ist jeweils gleich, also sollte aufgrund der Wartbarkeit keine 2 Workbooks geöffnet werden. Mit einem Wechsel der Sprache mithilfe der Buttons (einfache WENN Bedingung) ist mir auch nicht wirklich geholfen, da es sich um variable & lange Texte dreht).
Gibt es eine Möglichkeit die Sheets zu bündeln oder wenigstens mehr als ein Sheet zur Eröffnung auszuwählen?
VG

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Per Userform angezeigte Sheets auswählen können
14.05.2018 12:17:46
Rudi
Hallo,
oder wenigstens mehr als ein Sheet zur Eröffnung auszuwählen?
klar geht das.
Eigenschaft Multiselect der LBx entsprechend setzen.
Gruß
Rudi
AW: Per Userform angezeigte Sheets
14.05.2018 15:13:38
Franz
Hallo,
vielen Dank für deine Antwort.
Mir war nicht bewusst, dass ein multiselect auch ohne Filepicker möglich ist.
VG
AW: Per Userform angezeigte Sheets auswählen können
14.05.2018 12:23:46
Armin
Hallo,
was willst Du denn erreichen? Natürlich kannst Du mehrere Listbox-Zeilen auswählen
UserForm1.ListBox1.MultiSelect = fmMultiSelectMulti

Das kannst Du auch manuell einstellen (ListBox Eigenschaft).
Aber die Abfrage mus dann natürlich anders aussehen.
Private Sub ListBox1_Click() musst Du dann ersetzen durch einen Button denn das _Click Event reagiert dann natürlich nicht mehr! Dafür kannst Du soviele Zeilen markieren wie Du willst. Die Abfrage des Button kann dann so aussehen:
Private Sub CommandButton1_Click()
Dim I As Integer
If ListBox1.ListIndex > -1 Then
For I = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(I) Then
With Sheets(ListBox1.List(I, 0))
.Visible = True
.Activate
End With
End If
Next
End If
Unload Me
End Sub

Gruß Armin
Anzeige
AW: Per Userform angezeigte Shee
14.05.2018 15:12:41
Franz
Hallo,
vielen Dank für deine Antwort.
Ich probiere deinen Vorschlag die kommende Woche ebenfalls aus. Die Erstellung der Buttons in Userforms ist für mich noch etwas schwer, da ich mir alles selbst beibringe.
Falls etwas nicht klappt, melde ich mich wieder!
VG
AW: Per Userform angezeigte Sheets auswählen kön
14.05.2018 13:15:58
Daniel
Hi
machs doch so:
1. in der Listbox steht nur noch "deutsch" und "englisch"
2. die Tabellenblattnamen beginnen entweder mit "de " oder mit "en ", je nachdem ob sie deutsch oder englsich sind
3. im Klick-Event der Listbox dann folgender Code:

dim sh as worksheet
for each sh in thisworkbook.worksheets
sh.visible = true
Next
for each sh in thisworkbook.Worksheets
sh.visible = (left(sh.name, 2) = left(listbox1.text, 2))
next
dh über den Sheet-Namen (erste zwei zeichen) steuerst du die Zugehörigkeit zu jeweiligen Sprachgruppe (deutsch, englisch)
die erste Schleife ist notwendig, da es sonst vorkommen, kann, dass du dir temporär alle Zeilen ausblendest.
Gruß Daniel
Anzeige
AW: Per Userform angezeigte Sheets auswählen kön
14.05.2018 15:10:26
Franz
Hallo,
danke für deine Antwort.
Die Listbox fülle ich mit den Werten Deutsch & Englisch aus einer Tabelle oder ist es möglich die Werte innerhalb der Listbox direkt in VBA festzulegen?
Das mit der ersten Schleife ist ein super Hinweis! Jetzt wird mir jedoch trotzdem ein Sheet angezeigt, das eigentlich auf "very hidden" steht. Wie ist das möglich?
VG
AW: Per Userform angezeigte Sheets auswählen kön
14.05.2018 17:11:25
Daniel
Hi
wie das möglich ist?
du hast doch meinen Hinweis gelesen, ich blende erst mal alle Sheets ein.
Wenn du welche dauerhaft verstecken willst, musst du dies in den Schleifen berücksichtigen und in beiden Schleifen die Abfrage:
if sh.visible xlsheetveryhidden Then
voranstellen, um die vollständig ausgeblendeten Blätter von dieser Aktion auszunehmen.
Gruß Daniel
Anzeige
AW: Per Userform angezeigte Sheets auswählen kön
14.05.2018 17:37:38
Daniel
Hi
beide Varianten sind möglich.
entweder du schreibst die beiden Texte in eine freie stelle der Tabelle untereinander und verknüpfst die Listbox über die Eigenschaft RowSource mit diesen beiden Zellen (dort Zelladresse mit Tabellennamen eintragen: Tabelle1!A1:A2)
oder du fügst im Initialize-Event der Userform die Elemente hinzu.
Listbox1.AddItem "deutsch"
Listbox1.Additem "englisch"
Gruß Daniel
AW: Per Userform angezeigte Sheets auswählen kön
15.05.2018 15:21:24
Franz
Hallo,
danke für deine hilfe!
Gruß

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige