Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: aktive Multiseite abfragen

aktive Multiseite abfragen
08.05.2008 13:21:24
mario
Hallo,
ich habe ein Blatt mit gruppierte Zeilen und eine Userform mit Multiseiten.
Ich möchte durch Anwahl eines Registers der Multiseite entsprechend einen Bereich der Gruppierung aus bzw. wieder einblenden.
Wie kann ich das angewählte Register abfragen?
...wenn Page1 angewählt, dann
'Details von gruppierten Zeilen ein- & ausblenden
ExecuteExcel4Macro "SHOW.DETAIL(1,19,True)"
ExecuteExcel4Macro "SHOW.DETAIL(1,31,False)"
End Sub
...wenn Page2 angewählt, dann
'Details von gruppierten Zeilen ein- & ausblenden
ExecuteExcel4Macro "SHOW.DETAIL(1,19,False)"
ExecuteExcel4Macro "SHOW.DETAIL(1,31,True)"
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aktive Multiseite abfragen
08.05.2008 13:31:33
Rudi
Hallo,
.Value-Eigenschaft der MP.
Gruß
Rudi

If Multipage1=0 then....
08.05.2008 13:33:00
NoNet
Hallo Mario,
das ist einfacher als man zunächst denkt :
Die Nr. der ausgewählten Seite des Multipage-Controls entspricht einfach dem Wert des Multipage-Objektes (beginnend mit 0 für Seite1) :
Seite1 ausgewählt : => MultiPage1=0
Seite2 ausgewählt : => MultiPage1=1
Seite3 ausgewählt : => MultiPage1=2
etc.
Entsprechen könnte Deine Abfrage lauten :

If MultiPage1=0 then
'Code für Seite1
elseIf MultiPage1=1 then
'Code für Seite2
endif

gruß, NoNet

Anzeige
Hinweis: Natürlich MultiPage1.VALUE=0
08.05.2008 13:36:36
NoNet
Sorry Mario,
es muss natürlich MultiPage1.VALUE=0 heissen und nicht nur MultiPage1=0
Beim Testen hatte ich den .VALUE noch drin ;-))
Ciao, NoNet

AW: Hinweis: Natürlich MultiPage1.VALUE=0
08.05.2008 13:59:24
mario
Danke,
wo muß ich das jetzt einfügen
in "Diese Arbeitsmappe" geht es nicht

Private Sub Workbook_Open()
UserForm1.Show
If MultiPage1.Value = 0 Then
ExecuteExcel4Macro "SHOW.DETAIL(1,19,True)"
ExecuteExcel4Macro "SHOW.DETAIL(1,31,False)"
ElseIf MultiPage1.Value = 1 Then
ExecuteExcel4Macro "SHOW.DETAIL(1,19,False)"
ExecuteExcel4Macro "SHOW.DETAIL(1,31,True)"
End If
End Sub


Anzeige
AW: Hinweis: Natürlich MultiPage1.VALUE=0
08.05.2008 14:41:00
mario
...tja,
Private Sub UserForm_Initialize()
damit geht es nur einmal.
Ich möchte aber zwischen den Registerkarten hin- und herschalten und die Gruppierung soll ensprechend reagieren.

Private Sub MultiPage1_Change() '_oT
08.05.2008 15:03:49
NoNet
_oT

AW: Private Sub MultiPage1_Change() '_oT
08.05.2008 15:17:44
mario
...wow, suuper, Dankeschön!

Anzeige
AW: aktive Multiseite abfragen
08.05.2008 13:33:00
Hajo_Zi
Hallo Mario,
MsgBox MultiPage1.Value

;
Anzeige

Infobox / Tutorial

Aktive Multiseite abfragen in Excel


Schritt-für-Schritt-Anleitung

Um die aktive Multiseite in Excel abzufragen und entsprechend Gruppen von Zeilen ein- oder auszublenden, kannst du folgende Schritte befolgen. Diese Anleitung setzt voraus, dass du VBA (Visual Basic for Applications) nutzt und eine Userform mit einem Multipage-Steuerelement erstellt hast.

  1. UserForm Erstellen: Stelle sicher, dass du eine Userform mit einem Multipage-Steuerelement hast. Nenne das Multipage-Steuerelement z.B. MultiPage1.

  2. VBA-Code Hinzufügen: Füge den folgenden Code in das Codefenster der Userform ein:

    Private Sub MultiPage1_Change()
       If MultiPage1.Value = 0 Then
           ExecuteExcel4Macro "SHOW.DETAIL(1,19,True)"
           ExecuteExcel4Macro "SHOW.DETAIL(1,31,False)"
       ElseIf MultiPage1.Value = 1 Then
           ExecuteExcel4Macro "SHOW.DETAIL(1,19,False)"
           ExecuteExcel4Macro "SHOW.DETAIL(1,31,True)"
       End If
    End Sub
  3. UserForm Anzeigen: Stelle sicher, dass die Userform beim Öffnen der Arbeitsmappe angezeigt wird. Dies kannst du im Code der Arbeitsmappe wie folgt tun:

    Private Sub Workbook_Open()
       UserForm1.Show
    End Sub

Jetzt wird beim Wechseln zwischen den Seiten der Multipage die Gruppierung entsprechend ein- oder ausgeblendet.


Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nicht, wenn die Userform geöffnet wird.
    Lösung: Stelle sicher, dass du den Code in das richtige Modul eingefügt hast, z.B. UserForm und nicht in Diese Arbeitsmappe.

  • Fehler: Die Zeilen werden nicht korrekt ein- oder ausgeblendet.
    Lösung: Überprüfe, ob die richtigen Zeilennummern in den SHOW.DETAIL-Befehlen angegeben sind.


Alternative Methoden

Eine alternative Methode, um die Sichtbarkeit von Zeilen zu steuern, ist die Verwendung von Rows.Hidden. Hier ein Beispiel:

Private Sub MultiPage1_Change()
    Rows("19:19").Hidden = (MultiPage1.Value <> 0)
    Rows("31:31").Hidden = (MultiPage1.Value <> 1)
End Sub

Diese Methode hat den Vorteil, dass du nicht auf die ExecuteExcel4Macro-Funktion angewiesen bist.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du die Sichtbarkeit von Zeilen basierend auf der aktiven Multiseite steuern kannst:

  1. Seite 1: Zeige Details für die Zeilen 19 und blende die Zeilen 31 aus.
  2. Seite 2: Blende die Zeilen 19 aus und zeige die Zeilen 31 an.

Nutze den oben genannten Code in der MultiPage1_Change-Methode, um dies zu implementieren.


Tipps für Profis

  • Verwendung von MsgBox: Du kannst zur Fehlersuche MsgBox MultiPage1.Value verwenden, um den aktuellen Wert der aktiven Seite zu überprüfen.

  • Optimierung des Codes: Überlege, ob du den Code in Funktionen unterteilen kannst, um die Wartbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich die Sichtbarkeit von mehr als zwei Gruppen steuern?
Du kannst einfach weitere ElseIf-Bedingungen hinzufügen, um zusätzliche Seiten zu berücksichtigen.

2. Welche Excel-Version benötige ich für die Nutzung von Multipage?
Multipage ist in Excel VBA verfügbar, das in den meisten Versionen von Excel enthalten ist, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige