ich nehme mir jeden Tag ein neues Thema vor. Ich habe heute in meinem Archiv die Excel Multipage gefunden. Ist es möglich, je Page, auch eine Listbox einzufügen? Datei hänge ich an.
Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
erst mal grundsätzlich ja. Stehen in der Datei noch weitere Anforderungen?
Ich lade mir Dateien in der Regel erst runter, wenn ich es für mich als absolut notwendig empfinde. Ansonsten halte ich mich erst mal an die Texte in den Beiträgen und versuche das Problem auszudiskutieren.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
03.01.2020, 14:27 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2020, 14:27 von marose67.)
Hallo André,
Es handelt sich hier nur um Die Multipage ... auf Tabellennamen bezogen ... und in jeder Tabelle stehen 5 Namen, welche in der Listbox aufgeführt werden sollen.
Code hinter der Userform:
PrivateSub UserForm_Initialize()
Dim i AsIntegerDim x AsInteger
x = 1For i = 1To Worksheets.Count
If Worksheets(i).Name = "Übersicht"Then
x = x + 1Else
MultiPage1.Pages(i - x).Caption = Worksheets(i).Name
EndIfNext
Me.MultiPage1.Value = Shname - 1EndSub
Danke Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Hi Marcus, dann gibt es auch wieder mehrere varianten, z.B. die Listboxen fest zu platzieren und die Bereiche ebenfalls, dann könnte man die Bereiche variabel halten und man könnte auch die Listboxen erst zur Laufzeit erzeugen, die Multipage-Seiten ebenso, usw..
Hier mal eine Variante. Du erzeugst ein Userform mit einer Multipage und löschst von der Multipage alle Seiten.
Code:
Private Sub UserForm_Initialize() Dim blaetter As Worksheet For Each blaetter In ThisWorkbook.Worksheets With MultiPage1 .Add (blaetter.Name) With .Pages(blaetter.Name).Add("Forms.Listbox.1") .Left = 6 .Top = 6 .Height = 100 .Width = 150 .RowSource = blaetter.Name & "!" & blaetter.Range("A1:A5").Address End With End With Next End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • marose67
03.01.2020, 15:17 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2020, 15:23 von snb.)
In diesem Fall würde ich ein Tabstrip statt Multipage verwenden:
PHP-Code:
Private Sub UserForm_Initialize() For Each it In Sheets TabStrip1.Tabs(it.Index - 1).Caption = it.Name Next ListBox1.List = Sheets(1).Cells(1).CurrentRegion.Value End Sub
Private Sub TabStrip1_Change() ListBox1.List = Sheets(TabStrip1.Value + 1).Cells(1).CurrentRegion.Value End Sub
03.01.2020, 15:41 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2020, 15:52 von marose67.)
Hallo André, Du fehlst mir an meiner Seite. Wieso bekomme ich, obwohl ich den alten Code abgewählt habe, jetzt alle Tabellenblätter doppelt angezeigt? Einmal auf engliscch einmal auf Deutsch. Bei der Deutschen Variante werden mir wirklich Listboxen angezeigt.
Gruß Marcus Danke snb,
das ist für mich ganz neu. Ich beschäftige mich mal damit.
Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Private Sub UserForm_Initialize() For Each it In Sheets With MultiPage1.Pages(it.Index - 1) .Caption = it.Name With .Add("Forms.Listbox.1") .Left = 0 .Top = 0 .Height = .Parent.Parent.Height .Width = .Parent.Parent.Width .List = it.Cells(1).CurrentRegion.Value End With End With Next End Sub
klappt es. Ich habe überall Option explicit drin stehen.
Danke!!!
Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Zitat:Wieso bekomme ich, obwohl ich den alten Code abgewählt habe, jetzt alle Tabellenblätter doppelt angezeigt? Einmal auf englisch einmal auf Deutsch.
ich schrieb
Zitat:Du erzeugst ein Userform mit einer Multipage und löschst von der Multipage alle Seiten.
Du müsstest von Deiner Multipage also erst mal alle Seiten löschen. Ich erzeuge die mit meinem Code neu. Ansonsten, wenn Du die Seiten vorhältst, könntest Du ja auch die Listboxen vorhalten und brauchst keinen Code bzw. nur dann einen Code, um ggf. auf veränderte darzustellende Datenmengen zu reagieren.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
03.01.2020, 16:33 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2020, 16:49 von marose67.)
Hallo André, das probiere ich aus. Habe nicht richtig gelesen. Danke.
Gruß Marcus Hallo André,
dein kleiner Code ist super. Der lässt sogar neue Tabellenblätter zu. Danke vielmals!!!!
Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.