Masquer les feuilles commencant par "blabla"

Résolu
metek18 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
metek18 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour je viens de commencer le vba. J'aimerai connaître une méthode me permettant de cacher certaines feuilles à un utilisateur.
Cette procédure fonctionne pour interdire l'utilisateur d'accéder à un contenu à partir d'un formulaire si la feuille à laquelle il demande l'accès a été cachée auparavant. Sinon on l'active et on ouvre un autre formulaire.

Private Sub CommandButton_Click()
If Sheets(« blabla »).Visible=xlSheetVeryHidden Then
MsgBox "Vous ne pouvez pas y acceder"
Else
Sheets(« blabla »).Activate
UserForm2.Hide
UserForm3.Show
End Sub


Voilà ma problématique: J'ai maintenant plusieurs feuilles de ce type : blabla 01, blabla 02 ...
Je voudrais reprendre la procédure ci-dessus afin de cacher les feuilles commencant par blabla.
J'ai essayé avec la fonction Left mais j'avais des erreurs de syntaxe.

Comment s'y prendre ?

1 réponse

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
    Pour cacher toutes les feuilles commençant par "BLABLA" (attention, masquer n'est verrouiller)
        For i = 1 To Sheets.Count
            If Left(Sheets(i).Name, 6) = "BLABLA" Then Sheets(i).Visible = False
        Next i
    

    A adapter à votre code
    Cdlt
    0
    1. metek18 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Frenchie,

      A l'ouverture de mon classeur toutes les feuilles sont masquées sauf la première d'accueil.
      J'ai paramétré l'accès à certaines feuilles en fonction du nom d'utilisateur. Ainsi, je veux que si l'utilisateur1 se connecte et n'a pas accès aux feuilles "BLABLA" (qui reste cachées donc) et qu'il tente par un formulaire d'accéder à ce contenu, un message d'erreur s'affiche.

      Voilà ton code que j'ai adapté:

      Private Sub CommandButton_Click() 
      
      For i = 1 To Sheets.Count
      
            If Left(Sheets(i).Name,8) = «BLABLA" Then
                   If Sheets(i).Visible = xlVeryHidden Then
       
                                    MsgBox "Vous ne pouvez pas y acceder" 
                   Else 
                                    Sheets(i).Activate 
                                    UserForm2.Hide 
                                    UserForm3.Show 
                    End If
              End If
      End Sub 
      


      Ca fonctionne mais du coup comme j'ai 12 feuilles commençant par BLABLA le message s'affiche 12 fois quand je clique sur le bouton..

      Je reviens sur ton message précédent : Si la feuille est masquée il ne peut pas y accéder. Quelle est donc la différence avec verrouiller ?
      0
    2. metek18 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
       
      en ajoutant un Exit For ça marche c'est bon !
      0