Bouton vérouillage de feuille avec certaines cases déverouillées

KathRoz Messages postés 12 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 26 juillet 2011 - 26 juil. 2011 à 08:11
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 26 juil. 2011 à 14:59
Bonjour à tous,
je suis une vrai débutante en VBA et j'ai une demande qui va surement paraitre très simple mais je n'y arrive pas du tout, même avec toutes les aides que je peux trouver sur internet.
Alors voilà mon problème:
J'ai un fichier Excel comprenant 7 onglets différents. Le fichier sera tout d'abord rempli par mon entreprise puis il doit être verrouillé par un appui sur un bouton mais il doit laisser certaines cases que le fournisseurs doit remplir déverrouillée pour le remplissage par celui-ci.
J'ai donc crée 2 boutons de commande ayant le code suivant:

Private Sub CommandButton1_Click()

Call locked

MsgBox "File locked!"

End Sub

Private Sub CommandButton2_Click()

Call unlocked

MsgBox "File unlocked!"

End Sub

Puis j'ai crée un module où je veux indiquer que le bouton lock verrouille avec un mot de passe mais que certaines cases restent déverrouillée et je ne sais pas comment faire. Même chose pour le bouton unlock.

Merci de votre aide.


KathRoz

22 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 juil. 2011 à 14:29
ou encore mieux :
Si ta feuille est déjà protégée par mdp toto ou si pas encore (et protège par mdp toto (les deux cas)
Dim identifie As Boolean
Private Sub Worksheet_Activate()
    If Not Worksheets("Feuil2").Protection Then
      Worksheets("Feuil2").Protect ("toto")
    End If
End Sub


Private Sub CommandButton1_Click()
  If Not identifie Then
    mdp = InputBox("donnez votre mot de passe")
    If mdp = "toto" Then
       identifie = True
    Else
      identifie = False
      MsgBox "vous n'avez rien à tentrer ici ! circulez !"
    End If
  Else
    Worksheets("Feuil2").Unprotect ("toto")
    Worksheets("Feuil2").Range("H1:I6").Locked = False
    Worksheets("Feuil2").Protect ("toto")
  End If
End Sub

Tu as là vraiment tous les ingrédients nécessaires pour faire ta cuisine, non ?



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 juil. 2011 à 14:59
ah oui : petite modif dans le click pour qu'il déverrouille du premier coup aussi si bon mot de passe :

Private Sub CommandButton1_Click()
  If Not identifie Then
    mdp = InputBox("donnez votre mot de passe")
    If mdp = "toto" Then
        Worksheets("Feuil2").Unprotect ("toto")
        Worksheets("Feuil2").Range("H1:I6").Locked = False
        Worksheets("Feuil2").Protect ("toto")
       identifie = True
    Else
      identifie = False
      MsgBox "vous n'avez rien à tentrer ici ! circulez !"
    End If
  Else
    Worksheets("Feuil2").Unprotect ("toto")
    Worksheets("Feuil2").Range("H1:I6").Locked = False
    Worksheets("Feuil2").Protect ("toto")
  End If
End Sub

je te laisse te fabriquer (super facile, maintenant) le re-verrouillage de la plage, si tu souhaites re-verrouiller à un autre moment.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
Rejoignez-nous