Macro Unhide col. avec password dans une feuille protegee

Bonjour à tous!

Je ne suis vraiment mais vraiment pas habitué à utiliser des macros alors je souhaiterais un petit coup de pouce svp :D Je cherche à résoudre un probleme depuis ce matin:

Je fais un petit formulaire pour que des gens puissent "reserver" des reunions telephoniques (Nombres de lignes, Nombres de participants...).

Suivant les infos renseignées, les couts s'affichent en colonne D, qui est hide pour l'utilisateur (car pas d'interet pour lui).

Le formulaire est envoyé au standard, et je veux que la personne puisse Unhide la colonne D grace a une macro avec password et voir ainsi les couts de communications.

Ma feuille de calcul est protegée, l'utilisateur se sert de dropdown list et de quelques champs libres.

J ai cree des macros Hide et Unhide avec password et boutons. D'apres ce que j ai compris, ma macro Unhide doit par exemple contenir les etapes: ActiveSheet.Unprotect/ Unhide / ActiveSheet.Protect. Car sinon je ne pourrais pas afficher la colonne D puisque la feuille est protegée

Correct?

J'en suis la pour l'instant:

Sub HidePS()

Dim MyPassword

MyPassword = InputBox("Please enter password", "Password Prompt", "*******")

'hardcode Password

If MyPassword = "test" Then

MsgBox "Access Granted", vbInformation, "Access"

'

'Call HidePS Macro

ActiveSheet.Unprotect

Columns("D:D").Select

Selection.EntireColumn.Hidden = True

Range("B37").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Range("B37").Select

Exit Sub

Else

MsgBox "Access denied", vbCritical, "Error"

Exit Sub

End If

End Sub

Cette macro Unhide fonctionne presque bien:

  • demande de password pour la macro
  • mais ensuite demande de password pour Unprotect la feuille
  • affichage de la colonne D
  • les cellules de la feuille sont protegees (bizarre ?)
  • mais il suffit de cliquer sur le bouton "Unprotect sheet" pour la dévérouller la feuille.

Je crois que mon soucis est que je me mélange un peu entre le password de la macro et celui de la feuille de calcul :D Je ne veux pas devoir entrer 2 passwords.

Comment insérer automatiquement le vérrouillage/dévérouillage de la feuille dans la macro pour que cela soit transparent pour la personne au standard? Elle doit simplement entre le password relatif a la macro et la feuille doit rester protegee tout le tps.

Merci D'avance.

/Tom

Edit: Excel 2007 utilisé mais le formulaire doit fonctionner sur Excel 2003 egalement.

Bonjour nordik

Si j'ai bien compris ton problème, tu as un mot de passe pour éxécuter ta macro. Mais si tu veux que l'utilisateur ne puisse pas oter la protection, il faut que tu mettes le mot de passe sur la méthode protect de activesheet, donc dans ton code tu changes

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

pour

ActiveSheet.Protect Password=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True

Quand tu appelleras la méthode UnProtect il faut que tu utilises aussi ce mot de passe.

Merci bien Math, j'ai l'impression que c est cela.

Je test ca demain.

Bonjour, les macros fonctionnent parfaitement maintenant. La feuille de calcul reste verrouillee. Merci bien Math.

Je mets ci-dessous le code, cela peut tjrs servir a quelqu un:

Sub UnhidePS()

Dim MyPassword

MyPassword = InputBox("Please enter password", "Password Prompt", "*******")

'hardcode Password

If MyPassword = "unhide" Then

MsgBox "Access Granted", vbInformation, "Access"

'

'Call UnhidePS Macro

ActiveSheet.Unprotect Password:="test"

Columns("C:E").Select

Range("C5").Activate

Selection.EntireColumn.Hidden = False

Range("B37").Select

ActiveSheet.Protect Password:="test", DrawingObjects:=True, Contents:=True, Scenarios:=True

Exit Sub

Else

MsgBox "Access denied", vbCritical, "Error"

Exit Sub

End If

End Sub

Sub HidePS()

Dim MyPassword

MyPassword = InputBox("Please enter password", "Password Prompt", "*******")

'hardcode Password

If MyPassword = "hide" Then

MsgBox "Access Granted", vbInformation, "Access"

'

'Call HidePS Macro

ActiveSheet.Unprotect Password:="test"

Columns("D:D").Select

Selection.EntireColumn.Hidden = True

Range("B37").Select

ActiveSheet.Protect Password:="test"

Range("B37").Select

Exit Sub

Else

MsgBox "Access denied", vbCritical, "Error"

Exit Sub

End If

End Sub

Bonne journee !

Bonjour Nordik,

tant mieux si on a pu t'aider,

oublie pas de mettre [Résolu] a ton post. ( combo box en bas a gauche )

Rechercher des sujets similaires à "macro unhide col password feuille protegee"