HERBERS Excel-Forum - die Beispiele

Thema: Ein- und ausblenden von Blättern gem. UserForm-ComboBoxes

Home

Gruppe

Dialog

Problem

Wie kann ich das Ein- und Ausblenden von Monats-Arbeitsblättern über UserForm-ComboBoxes steuern? Ein Datenblatt soll nur nach Passworteingabe geöffnet werden können.

Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.
ClassModule: DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Dim oExtras As CommandBarPopup
   Set oExtras = Application.CommandBars( _
      "Worksheet Menu Bar").FindControl(ID:=30007)
   On Error Resume Next
   oExtras.Controls("Blattauswahl").Delete
   On Error GoTo 0
End Sub

Private Sub Workbook_Open()
   Dim oExtras As CommandBarPopup
   Dim oBtn As CommandBarButton
   Set oExtras = Application.CommandBars( _
      "Worksheet Menu Bar").FindControl(ID:=30007)
   On Error Resume Next
   oExtras.Controls("Blattauswahl").Delete
   On Error GoTo 0
   Set oBtn = oExtras.Controls.Add
   With oBtn
      .Caption = "Blattauswahl"
      .OnAction = "CallForm"
      .BeginGroup = True
      .Style = msoButtonCaption
   End With
End Sub

ClassModule: frmPassword

Private Sub cmdOK_Click()
   If txtPassword.Text = "Password" Then
      Worksheets("Daten").Visible = True
      frmAusEinblenden.cmdDaten.Caption = "Daten ausblenden"
   Else
      Beep
      MsgBox "Falsches Passwort!"
   End If
   Unload Me
End Sub

ClassModule: frmAusEinblenden

Private Sub cboAusblenden_Change()
   Dim wksAct As Worksheet
   Dim intCounter As Integer
   For Each wksAct In Worksheets
      If wksAct.Visible = xlSheetVisible Then
         intCounter = intCounter + 1
         If intCounter = 2 Then Exit For
      End If
   Next wksAct
   If intCounter = 1 And cboAusblenden.Value <> "" Then
      MsgBox "Ein Blatt muss sichtbar bleiben!"
   Else
      If cboAusblenden.Value <> "" Then
         Worksheets(cboAusblenden.Value).Visible = xlHidden
         Call UserForm_Initialize
      End If
   End If
End Sub

Private Sub cboEinblenden_Change()
   If cboEinblenden.Value <> "" Then
      Worksheets(cboEinblenden.Value).Visible = xlSheetVisible
      Call UserForm_Initialize
   End If
End Sub

Private Sub cmdDaten_Click()
   If cmdDaten.Caption = "Daten einblenden" Then
      frmPassword.Show
   Else
      Worksheets("Daten").Visible = xlVeryHidden
      cmdDaten.Caption = "Daten einblenden"
   End If
End Sub

Private Sub cmdWeiter_Click()
   Unload Me
End Sub

Private Sub UserForm_Initialize()
   Dim wksAct As Worksheet
   cboEinblenden.Clear
   cboAusblenden.Clear
   For Each wksAct In ThisWorkbook.Worksheets
      Select Case wksAct.Visible
         Case xlSheetVisible
            If wksAct.Name = "Daten" Then
               cmdDaten.Caption = "Daten ausblenden"
            Else
               cboAusblenden.AddItem wksAct.Name
            End If
         Case xlSheetHidden
            cboEinblenden.AddItem wksAct.Name
         Case xlSheetVeryHidden
            cmdDaten.Caption = "Daten einblenden"
      End Select
   Next wksAct
End Sub

StandardModule: basMain

Sub CallForm()
   frmAusEinblenden.Show
End Sub

Beiträge aus dem Excel-Forum zu den Themen Dialog und ComboBox

mit combobox sortieren Combobox Zeile in Array übernehmen
UserForm TextBox mit ComboBox Datum vergleichen Dynamische Combobox ?
xlDialogInsertHyperlink.show Zelleneingabe nur per Combobox erlauben
ComboBox Combobox zurücksetzen
ComboBOx ComboBox
sverweis auf combobox FILTER; COMBOBOX
Arbeitmappen über Dialogfeld zusammen fassen Sortierung in ComboBox zweispaltig erfolgt falsch
Combobox, CheckBox, TextBox Formatierung Formatierung Dezimalzahlen bei Combobox-Eingaben
5.0 Dialog Dynamische Comboboxen anpassen
Combobox mit Auswahl Speichern unter Dialog in Word aufrufen inkl. Pfad
ComboBox Überlauf bei Befüllen einer ComboBox
In zwei ComboBox die gleiche Spalte einlesen Druckerdialog
ComboBox Eintragen transponieren mit combobox
Dateityp im "Speichern unter"-Dialog vorgeben combobox mit tabelleninhalt??
Makro stoppen, wenn Excel-Dialog? xlDialogOpen anpassen
ComboBox mit Hyperlink Combobox füllen
Klick in definierten Rangebereich startet Dialog in jeder angeklickte Zelle Auswahl durch Combobox
Mehrspaltige Combobox füllen Breite einer Combobox beim öffnen definieren
Daten in Combobox einlesen bzw. andere Ausgabe ComboBox mit CommandButton verknüpfen
Datum ohne Doppelte in ComboBox einlesen mehrere Comboboxen
Verküpfung zwei verschiedener ComboBoxen verknüpfung von zwei verschiedenen ComboBoxen
ComboBox mehrspaltige Combobox
Suche in ListBox-Ausgabe ComboBox Text für ComboBox hinterlegen
2.Eintrag aus ComboBox in aktive Zelle berechnen mit Combobox
Textbox abhängig von Combobox- Bin ich zu dumm? ComboBoxDaten in Abhängigkeit filtern o. Userform