Excel Multipage + Listbox
#1
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


Angehängte Dateien
.xlsm   Multipagenamen_gleich_Tabellenblattnamen_Listbox.xlsm (Größe: 31,75 KB / Downloads: 14)

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.
Top
#2
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
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

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.
Top
#4
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:
  • marose67
Top
#5
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 


Angehängte Dateien
.xlsb   __Tabstrip_snb.xlsb (Größe: 29,2 KB / Downloads: 14)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • marose67
Top
#6
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


Angehängte Dateien
.xlsm   Multipagenamen_gleich_Tabellenblattnamen_Listbox.xlsm (Größe: 33,21 KB / Downloads: 9)

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.
Top
#7
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 
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • marose67
Top
#8
Hallo,
mit

Zitat:Dim it As Object

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.
Top
#9
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#10
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.
Top


Gehe zu:


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