Protection par mot de passe [Résolu]

totaljim

XLDnaute Nouveau
Bonjour le forum,

Voila j'ai un soucis au niveau des protections de mes feuilles de classeur. Je vous explique
- J'ai 3 feuilles.
- La première doit etre visible par tout le monde
- La 2eme et 3eme ne doivent pas etre visible par tout le monde et protégée par un mdp
- Sur la première feuille j'ai un bouton qui lancer une macro qui va chercher des infos dans les feuilles "non publique"

Ce que je voudrais faire c'est que :
- lorsque l'on ouvre ce classeur, seul la premiere page soit visible (les onglets des autres feuilles ne sont pas affichés)
- que le bouton fonctionne (donc la macro aussi)
- que lors d'un clique droit sur l'onglet de la feuille 1 en cliquant sur afficher je puisse voir la présence des autres feuilles mais que leur accès soit protégé par un mot de passe


J'y arrive pas ! Ce que j'ai fais pour le moment c'est caché les feuilles 2 et 3 à l'ouverture du fichier (ou a sa fermeture j'ai essayé les deux) + protégé le classeur en structure par un mdp. Le soucis c'est que du coup mon bouton ne fonctionne plus.

Quelqu'un pourrait me donner toute les étapes pour réussir à faire ce que je voudrais faire ? en m'indiquant où va le code que vous me donnerez s'il vous plait !

Par avance, MERCI
TotalJim
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Protection par mot de passe

Bonjour ,

Avec un petit fichier reprennant le principe sans pour autant mettre les infos confidentielles aurait été un plus .

Bon une piste ,

si la feuille sur laquelle la macro effectue des modification est protégé , il faut soit déprotéger le temps en début de la macro et reprotéger en fin de macro , soit protéger la feuille en utilisant cette syntaxe :

ActiveSheet.Protect Password:="TOTO", UserInterfaceOnly:=True

où Toto est le mot de passe , bien sur ça peut être n'importe quoi , et le paramètre userinterfaceonly à true permet de n'appliquer cette protection que pour l'interface utilisateur, de ce fait la macro elle peut fonctionner sans souci.
 

totaljim

XLDnaute Nouveau
Re : Protection par mot de passe

Bon je vous joints le document que j'ai réalisé pour le moment, j'avais déja essayé de déprotéger la macro au début de celle-ci mais ... ca ne fonctionne pas, problème de protection du classeur je pense

@ camarchepas : comment définir l'interface utilisateur ?
 

Pièces jointes

  • test.xlsm
    68.5 KB · Affichages: 47
  • test.xlsm
    68.5 KB · Affichages: 45
  • test.xlsm
    68.5 KB · Affichages: 61

camarchepas

XLDnaute Barbatruc
Re : Protection par mot de passe

Ok ,

Voici déjà une première mise au point ,

regardes si cela va mieux en remplaçant ce module

Code:
Private Sub Workbook_Open()
With Sheets("1")
   .Protect Password:="toto", UserInterfaceOnly:=True
'
   .Range("J12").FormulaR1C1 = Date
'
   .Range("J16").FormulaR1C1 = Date + 30
'
   .Range("B11").Select
'
End With
ActiveWorkbook.Unprotect "toto"
Sheets("2").Visible = xlSheetHidden
Sheets("3").Visible = xlSheetHidden
Sheets("4").Visible = xlSheetHidden
ActiveWorkbook.Protect Password:="toto", structure:=True, Windows:=False
End Sub
 

totaljim

XLDnaute Nouveau
Re : Protection par mot de passe

Oula je suis en train de me perdre dans toute ces protections :(

Bon alors j'ai essayé avec ton code, sans toucher au reste du miens :

- lorsque je clique sur nouvelle page, j'ai un message d'erreur disant "Mot de passe non valide. Vérifiez que la touche VERR.MAJ n'est pas activée et que vous respectez la bonne casse"
1.qu'est ce donc qu'une casse ?
2. le problème vient du code de feuil1(1), là :
Code:
Private Sub CmdBtn1_Click()
    Application.ScreenUpdating = False
    [B]ActiveWorkbook.Unprotect[/B]
    ActiveSheet.Unprotect

- lorsque je clique droit sur l'onglet de la feuille 1, il ne me propose pas d'afficher les autres feuilles qui sont cachées donc il ne risque pas de me demander un mot de passe pour les visualiser


J'espere etre assez clair pour le moment !
Autant coder en VBA c'est bien cool, autant s'occuper de la protection des feuilles, classeurs, je trouve ça bien moins amusant ! Peut être parce que je m'y perds ^^
 

camarchepas

XLDnaute Barbatruc
Re : Protection par mot de passe

Et oui ,

Si tu mets un mot de passe pour protéger , il faut en mettre un pour déprotéger

Mais si tu utilises .Protect Password:="toto", UserInterfaceOnly:=True, pas besoin de déprotéger


Code:
Private Sub CmdBtn1_Click()
    Application.ScreenUpdating = False
    ActiveWorkbook.Unprotect "toto"
   ' ActiveSheet.Unprotect "toto" inutile
    Sheets("2").Visible = True
    Sheets("2").Select
    ActiveSheet.Rows("2:59").Copy
    ActiveWindow.SelectedSheets.Visible = False
'
    Sheets("1").Select
    ActiveSheet.Rows("57:57").Select
    Selection.Insert Shift:=xlDown
'
'    Rows("58:58").Select
'    Application.CutCopyMode = False
'
    ActiveSheet.Rows("59:59").Select
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
'
    ActiveSheet.Shapes("CmdBtn1").Select
    Selection.Cut
    Range("B57").Select
    ActiveSheet.Protect "toto", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveWorkbook.Protect Password:="toto", structure:=True, Windows:=False
    Application.ScreenUpdating = True

End Sub
 

Discussions similaires

Réponses
2
Affichages
172
Réponses
5
Affichages
410
Compte Supprimé 979
C
Réponses
8
Affichages
173