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

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
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
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
metek18 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
en ajoutant un Exit For ça marche c'est bon !
0