Clever-Excel-Forum

Normale Version: zum nächsten sichtbaren Blatt springen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe eine Datei, in der ich per Makro Benutzerdefiniert Blätter ein und ausblende.
Das funktioniert auch alles soweit gut.

Aber als kleine Optimierung hätte ich gerne, das am Ende das makros, also wenn die entsprechenden Seiten eingeblendet wurde, die Ansicht auf das nächste jetzt sichtbare Blatt springt.
Da das Makro sich die Infos was eingeblendet werden soll aus einer Tabelle hohlt, bin ich mir nicht sicher wie man das einbauen kann.

Hier mal der Code:

Code:
Private Sub cmdOK_Click()
   Dim lngS As Long, lngZ As Long
   
   Initialisieren 'Zuerst wieder ale Blätter ausser START ausblenden
   
   If cmbName.ListIndex >= 0 Then
       lngS = cmbName.List(cmbName.ListIndex, 1)
       With Sheets("Einstellungen")
           If txtPasswort.Value = .Cells(2, lngS) Then
               For lngZ = 4 To .Cells(Rows.Count, 1).End(xlUp).row
                   If .Cells(lngZ, lngS) <> "" Then
                       Sheets(.Cells(lngZ, 1).Value).Visible = True
                   End If
               Next
           Else
               MsgBox "Falsches Passwort !"
           End If
       End With
   Else
       MsgBox "Bitte zuerst Benutzer auswählen und Passwort eingeben !"
   End If
   
   txtPasswort.Value = ""
End Sub
Hallo Mario,

z.B. so:
Private Sub cmdOK_Click()
  Dim lngS As Long, lngZ As Long
  Dim oWs As Worksheet
  Initialisieren 'Zuerst wieder ale Blätter ausser START ausblenden
 
  If cmbName.ListIndex >= 0 Then
      lngS = cmbName.List(cmbName.ListIndex, 1)
      With Sheets("Einstellungen")
          If txtPasswort.Value = .Cells(2, lngS) Then
              For lngZ = 4 To .Cells(Rows.Count, 1).End(xlUp).Row
                  If .Cells(lngZ, lngS) <> "" Then
                      Sheets(.Cells(lngZ, 1).Value).Visible = True
                      If oWs Is Nothing Then
                         Set oWs = Sheets(.Cells(lngZ, 1).Value)
                      End If
                  End If
              Next
          Else
              MsgBox "Falsches Passwort !"
          End If
      End With
  Else
      MsgBox "Bitte zuerst Benutzer auswählen und Passwort eingeben !"
  End If
  txtPasswort.Value = ""
  If Not oWs Is Nothing Then oWs.Activate
End Sub
Gruß Uwe
Hallo, herzlichen Dank, funktioniert.