Bloquer une feuille d'un classeur par un mot de passe

Fermé
ChercheJ Messages postés 184 Date d'inscription mardi 16 juin 2015 Statut Membre Dernière intervention 14 janvier 2024 - 4 avril 2020 à 10:49
angelinas32 Messages postés 15 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 27 novembre 2020 - 23 avril 2020 à 00:46
Bonjour,

je souhaiterais savoir si sur un fichier Excel, il est possible de protéger une feuille de calcul par un mot de passe sans protéger les autres ?
Autrement dit, est-il d'accéder à la feuille 1 mais pas à la feuille 2 sauf si on y saisit le bon mot de passe.
Si oui, pourriez-vous m'indiquer comment s'il vous plaît ?

Merci pour votre aide.
A voir également:

6 réponses

via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703
4 avril 2020 à 13:40
Bonjour à tous

Pour prolonger le conseil donné par Le Pivert :
Dans l'éditeur VBA dans ThisWorkbook mettre la macro suivante pour cacher Feuil2 à l’ouverture du classeur
Private Sub Workbook_Open()
Sheets("Feuil2").Visible = xlVeryHidden
End Sub

Dans la feuille 1 mettre un bouton pour accès à Feuil2
Associer le code suivant au bouton avec le mot de passe de ton choix
Private Sub CommandButton1_Click()
 resultat = InputBox("Entre votre mot de passe ?", "AUTORISTAITON")
    If resultat = "toto" Then
    Sheets("Feuil2").Visible = True
    Sheets("Feuil2").Activate
    Else
    MsgBox "Mot de passe incorrect"
    End If
End Sub

Bien sûr dans les 2 macros remplacer Feuil2 par le nom réel de la feuille si tu lui en attribué un spécifique

Cdlmnt
Via
1
angelinas32 Messages postés 15 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 27 novembre 2020
11 avril 2020 à 01:22
Bonsoir,

Pour ma part j'ai entrée ces infos. mais impossible de renommer mes feuilles en modifiant aussi les nom de la VBA il doit me manquer une info ma feuille 1 se nomme Accueil (qui comprend mes bouton Masquer et afficher pour avoir accès a mes feuilles) - 2 CSST - 3 CNESST - 4 PAIE donc si vous pourriez m'aider à trouver mon problème cela serait très gentil.

Private Sub Workbook_Open()
Dim i As Integer
Worksheets("Accueil").Activate
End Sub

Sub Masquerfeuille()
Dim i As Integer
If MsgBox("Voulez-vous vraiment masquer les feuilles?", vbYesNo, "Confirmation!") = vbYes Then
For i = 1 To Sheets.Count - 1
Sheets("CSST ").Visible = xlSheetVeryHidden
Next i
End If
End Sub

Sub ActiverFeuille()
Dim i As Integer
Dim MonPassword As Variant
Dim AjoutData As Range
Set AjoutData = Sheets("CNESST").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

On Error GoTo 1

For i = 1 To Sheets.Count - 1
Sheets("PAIE ").Visible = xlSheetVeryHidden
Next i

MonPassword = InputBox("Veuillez saisir votre mot de passe pour acc?der ? votre feuille :", "Identification")
If MonPassword = "1" Then
Sheets("CSST").Visible = True
Worksheets("CSST").Select
Range("A1").Select
End If
If MonPassword = "2" Then
Sheets("CNESST").Visible = True
Worksheets("CNESST").Select
Range("A1").Select
End If

If MonPassword = "3" Then
Sheets("PAIE").Visible = True
Worksheets("PAIE").Select
Range("A1").Select
End If

If MonPassword = "admin1" Then
For i = 1 To 3
Sheets("CSST, CNESST, PAIE'').Visible = True
Worksheets("CSST, CNESST, PAIE").Select
Range("A1").Select
Next i

End If

If MonPassword <> "" Then
AjoutData = MonPassword
AjoutData.Offset(0, 1).Value = Now
End If
1 End Sub
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776 > angelinas32 Messages postés 15 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 27 novembre 2020
11 avril 2020 à 09:47
Bonjour angelinas32,

Quand tu mets du code sur le Forum il faut le baliser, c'est très simple :
0
via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703 > angelinas32 Messages postés 15 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 27 novembre 2020
11 avril 2020 à 18:54
Bonjour angelina

Déjà ta boucle ne peut fonctionner car au lieu de faire varier varier les feuilles selon leur rang avec
Sheets(i).Visible = xlSheetVeryHidden 

tu as toujours la même instruction
Sheets("CSST ").Visible = xlSheetVeryHidden 


Idem avec la 2nde boucle qui comporte en plus une instruction non valable
Sheets("CSST, CNESST, PAIE'').Visible = True 


Essaie plutôt ainsi :
Sub Masquerfeuille()
Dim i As Integer
If MsgBox("Voulez-vous vraiment masquer les feuilles?", vbYesNo, "Confirmation!") = vbYes Then
Sheets("CSST ").Visible = xlSheetVeryHidden
Sheets("CNESST").Visible = xlSheetVeryHidden
Sheets("PAIE").Visible = xlSheetVeryHidden
End If
End Sub

Sub ActiverFeuille()
Dim i As Integer
Dim MonPassword As Variant
Dim AjoutData As Range
Set AjoutData = Sheets("CNESST").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)

Sheets("CSST ").Visible = xlSheetVeryHidden
Sheets("CNESST").Visible = xlSheetVeryHidden
Sheets("PAIE").Visible = xlSheetVeryHidden

MonPassword = InputBox("Veuillez saisir votre mot de passe pour accéder à votre feuille :", "Identification")
If MonPassword <> "1" And MonPassword <> "2" And MonPassword <> "3 " And MonPassword <> "admin1" Then GoTo fin

If MonPassword = "admin1" Then
Sheets("CSST").Visible = True
Sheets("CNESST").Visible = True
Sheets("PAIE").Visible = True
Worksheets("CSST").Select
Range("A1").Select
End If

If MonPassword = "1" Then
Sheets("CSST").Visible = True
Worksheets("CSST").Select
Range("A1").Select
End If

If MonPassword = "2" Then
Sheets("CNESST").Visible = True
Worksheets("CNESST").Select
Range("A1").Select
End If

If MonPassword = "3" Then
Sheets("PAIE").Visible = True
Worksheets("PAIE").Select
Range("A1").Select
End If


AjoutData = MonPassword
AjoutData.Offset(0, 1).Value = Now

fin:
End Sub

Cdlmnt
Via
0
angelinas32 Messages postés 15 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 27 novembre 2020 > via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024
22 avril 2020 à 22:46
Merci beaucoup, j'ai enfin compris le tout et tout fonctionne.

Dernière petite demande. À quel endroit et quel code dois-je entrer afin que si un mot de passe erroné est entrée qu'un message d'erreur s'affiche?

Ex : j'ai créé deux boutons avec macro dans ma feuille accueil une pour activer et l'autre pour cacher, mais présentement lorsque je ne rentre pas le bon mot de passe je n'ai aucune information seulement que mes feuilles ne s'affichent pas.

Merci de votre aide

Cordialement,
0
via55 Messages postés 14406 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 avril 2024 2 703 > angelinas32 Messages postés 15 Date d'inscription mercredi 19 août 2015 Statut Membre Dernière intervention 27 novembre 2020
23 avril 2020 à 00:24
Bonsoir

Modifie la ligne :
If MonPassword <> "1" And MonPassword <> "2" And MonPassword <> "3 " And MonPassword <> "admin1" Then Msgbox "Code non valide, réessayez" :GoTo fin

Cdlmnt
Via
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
4 avril 2020 à 10:58
Bonjour
vus pouvez masquer la feuille l'onglet correspondant est masqué et placer la protection du classeur en structure, avec mot de passe
la feuille ne pourra être affichée que si la protection classeur est retirée

crdlmnt
0
ChercheJ Messages postés 184 Date d'inscription mardi 16 juin 2015 Statut Membre Dernière intervention 14 janvier 2024 4
4 avril 2020 à 11:11
D'accord.
Mais si le classeur est ouvert (non protégé) et que je souhaite bloquer une des feuilles de calculs par un mot de passe, c'est possible ?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
4 avril 2020 à 11:33
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ChercheJ Messages postés 184 Date d'inscription mardi 16 juin 2015 Statut Membre Dernière intervention 14 janvier 2024 4
4 avril 2020 à 13:10
Ah, pas mal : je vais regarder cela de plus près.
Merci en tout cas.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié le 11 avril 2020 à 09:42
Bonjour,

Je voudrais préciser que toutes ces astuces de protection de feuille par mot de passe sont relativement illusoires pour quelqu'un qui connait Excel et la faiblesse de ses protections.

Je pense qu'il est bien plus simple de ne fournir au destinataire que la ou les feuille qu'il a "à en connaître".
Aujourd'hui, avec PowerQuery, effectuer une synthèse peut se faire sans macro.

0