HERBERS Excel-Forum - die Dialoge

Thema: Arbeitsblätter aus/einblenden

Home
In der UserForm werden im MultiPage-Steuerelement die Spaltenüberschriften zweier Arbeitsblätter in einer ListBox-Auswahl angezeigt. Bei Auswahl oder Nichtauswahl werden die entsprechenden Spalten aus- oder eingeblendet. Arbeitsblätter aus/einblenden
  • Prozedur: UserForm_Initialize
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Blatt-Kopfzeilen einlesen und Spalten ausblenden
  • Ablaufbeschreibung:
    • Kopfzeilen der ersten Tabelle in erste ListBox einlesen
    • Kopfzeilen der zweiten Tabelle in zweite ListBox einlesen
    • Alle Spalten des genutzten Bereiches der ersten Tabelle ausblenden
    • Alle Spalten des genutzten Bereiches der zweiten Tabelle ausblenden
  • Code:

    
    Private Sub UserForm_Initialize()
       lst1.Column = Worksheets("Tabelle1").Range("A1").CurrentRegion.Value
       lst2.Column = Worksheets("Tabelle2").Range("A1").CurrentRegion.Value
       Worksheets("Tabelle1").Range("A1").CurrentRegion.Columns.Hidden = True
       Worksheets("Tabelle2").Range("A1").CurrentRegion.Columns.Hidden = True
       Worksheets("Tabelle1").Select
       MultiPage1.Value = 0
    End Sub
    
  • Prozedur: MultiPage1_Change
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Arbeitsblatt wechseln
  • Ablaufbeschreibung:
    • Es wird ein Arbeitsblatt in Abhängigkeit des Indexes des MultiPage-Steuerlements ausgewählt
  • Code:

    
    Private Sub MultiPage1_Change()
       Worksheets(MultiPage1.Value + 2).Select
    End Sub
    
  • Prozedur: lst1_Change
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Unterprogramm aufrufen
  • Ablaufbeschreibung:
    • Das Unterprogramm zum Ein/Ausblenden der Spalten wird mit dem Parameter des Indexes des MultiPage-Steuerlements aufgerufen
  • Code:

    
    Private Sub lst1_Change()
       Call EinAus(MultiPage1.Value + 1)
    End Sub
    
  • Prozedur: lst2_Change
  • Art: Ereignis
  • Modul: Klassenmodul der UserForm
  • Zweck: Unterprogramm aufrufen
  • Ablaufbeschreibung:
    • Das Unterprogramm zum Ein/Ausblenden der Spalten wird mit dem Parameter des Indexes des MultiPage-Steuerlements aufgerufen
  • Code:

    
    Private Sub lst2_Change()
       Call EinAus(MultiPage1.Value + 1)
    End Sub
    
  • Prozedur: EinAus
  • Art: Sub
  • Modul: Klassenmodul der UserForm
  • Zweck: Spalten ein/ausblenden
  • Ablaufbeschreibung:
    • Variablendeklaration
    • Rahmen um das aktuelle ListBox-Objekt bilden
    • Schleife über alle Listeneinträge bilden
    • Die Hidden-Eigenschaft der jeweiligen Spalte dem Selected-Status des jeweiligen Listenelements anpassen
    • Bereich A1 auswählen
  • Code:

    
    Private Sub EinAus(iSheet As Integer)
       Dim iCounter As Integer
       With Controls("lst" & iSheet)
          For iCounter = 0 To .ListCount - 1
             Columns(iCounter + 1).Hidden = _
                Not .Selected(iCounter)
          Next iCounter
          Cells(1, 1).Activate
       End With
    End Sub