Clever-Excel-Forum

Normale Version: Excel Multipage + Listbox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo zusammen,

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
Hi Marcus,

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.
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:
Private Sub UserForm_Initialize()
Dim i As Integer
Dim x As Integer
x = 1
For i = 1 To Worksheets.Count
    If Worksheets(i).Name = "Übersicht" Then
        x = x + 1
    Else
        MultiPage1.Pages(i - x).Caption = Worksheets(i).Name
    End If
Next
Me.MultiPage1.Value = Shname - 1
End Sub
Danke
Marcus
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
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 
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
Multipage approach:


PHP-Code:
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 
Hallo,
mit

Zitat:Dim it As Object

klappt es. Ich habe überall Option explicit drin stehen.

Danke!!!

Gruß
Marcus
hI Marcus;

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.
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
Seiten: 1 2 3