Clever-Excel-Forum

Normale Version: VBA Code kürzen (alle sichtbaren Tabellenblätter ausblenden)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi,

(22.05.2018, 20:37)Werner.M schrieb: [ -> ]meinst du so was in der Art?

und dann noch auf jedes Sheet einen Button, der die Userform aufruft und in dem Userform-Code das Beenden der Userform:

Code:
Option Explicit

Private Sub CommandButton1_Click()
   strBlattname = Me.ActiveControl.Caption
   Call Modul1.ausblenden
   Unload Me
End Sub

Private Sub CommandButton2_Click()
   strBlattname = Me.ActiveControl.Caption
   Call Modul1.ausblenden
   Unload Me
End Sub

Private Sub CommandButton3_Click()
   strBlattname = Me.ActiveControl.Caption
   Call Modul1.ausblenden
   Unload Me
End Sub

Private Sub CommandButton4_Click()
   strBlattname = Me.ActiveControl.Caption
   Call Modul1.ausblenden
   Unload Me
End Sub

Code:
Option Explicit

Sub Schaltfläche1_Klicken()
   UserForm1.Show
End Sub
Hallo Werner

Genau so was hab ich gesucht. Besten Dank für die Hilfe.

Auch Danke an die Anderen.

Gruss
Demech
Diese Code im Userform reicht:


Code:
Private Sub CommandButton1_Click()
    M_snb
End Sub

Private Sub CommandButton2_Click()
    M_snb
End Sub

Private Sub CommandButton3_Click()
    M_snb
End Sub

Private Sub CommandButton4_Click()
    M_snb
End Sub

Sub M_snb()
  Sheets(ActiveControl.Caption).Visible = True
  For Each it In Sheets
    it.Visible = it.Name = ActiveControl.Caption
  Next
End Sub

Oder eine Kombination von Userform und Class module C_V

Im Class Module:
Code:
Public WithEvents cb As MSForms.CommandButton

Private Sub cb_click()
  Sheets(cb.Caption).Visible = True
  For Each it In Sheets
    it.Visible = it.Name = cb.Caption
  Next
End Sub

Im Userform:
Code:
Public st As New Collection

Private Sub UserForm_Initialize()
   For Each it In Controls
     st.Add New C_V, "L_" & st.Count
     Set st.Item(st.Count).cb = it
   Next
End Sub
Seiten: 1 2