Masquer les feuilles commencant par "blabla"

Résolu/Fermé
metek18 Messages postés 10 Date d'inscription jeudi 9 juillet 2015 Statut Membre Dernière intervention 26 avril 2016 - Modifié par pijaku le 10/07/2015 à 14:20
metek18 Messages postés 10 Date d'inscription jeudi 9 juillet 2015 Statut Membre Dernière intervention 26 avril 2016 - 10 juil. 2015 à 09:52
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 lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
9 juil. 2015 à 17:20
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 jeudi 9 juillet 2015 Statut Membre Dernière intervention 26 avril 2016
Modifié par pijaku le 10/07/2015 à 14:20
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 jeudi 9 juillet 2015 Statut Membre Dernière intervention 26 avril 2016
10 juil. 2015 à 09:52
en ajoutant un Exit For ça marche c'est bon !
0