Macro dévérouiller feuille Excel_deboggage

Fermé
jdr - 19 mars 2015 à 17:35
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 - 19 mars 2015 à 21:02
Bonsoir !!

Je rencontre un problème avec VBA et j'ai beau chercher, je ne vois pas comment adresser le problème alors je me tourne vers vous :-)
J'ai créé deux macro qui me permettent de verrouiller et déverrouiller ma feuille excel
Le verrouillage - pas de problème
Le déverrouillage - ça marche si on entre le bon mot de passe, mais si on entre le mauvais, une pop up VBA apparait, et me dit que le mot de passe n'est pas valide, et me propose la commande "Déboggage"

Or je ne veux pas que l'on me propose de debogguer puisque ça m'emmène dans la macro, où il est facile de fouiller et de tomber sur le mdp
Je voudrais juste qu'Excel me dise "Mot de passe erroné" et c'est tout, sans passer par le déboggage

Voilà ma macro (qui en fait ne fait pas que déverrouiller):



If ActiveSheet.Unprotect = True Then

Application.ScreenUpdating = False
Sheets("DATA 14").Visible = True
Sheets("STD COSTS").Visible = True
Sheets("LIST").Visible = True
Sheets("APPROVAL RULES").Visible = True

ThisWorkbook.Sheets("PAF").Activate
Range("i:n").EntireColumn.Hidden = False
Range("s:t").EntireColumn.Hidden = False
Range("y:z").EntireColumn.Hidden = False
Range("ap:aq").EntireColumn.Hidden = False
Range("aw:bd").EntireColumn.Hidden = False
Range("bl:bl").EntireColumn.Hidden = False
Application.ScreenUpdating = True

Else
End If

End Sub



Any idea? Je bloque là dessus et ne vois pas de solution :(

merci pour votre aide!

A voir également:

3 réponses

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 19/03/2015 à 17:41
Bonjour,

Le Else ne sert à rien dans votre cas

si excel vous propose de debogguer c'est qu'il y a une erreur

Cordialement
0
le Else fait suite au If du début (je le voyais comme un Else Do Nothing)
et il y a un If car je ne veux pas que les commandes s'exécutent si le mot de passe est erroné

Quand un mdp erroné est saisi et que j'actionne le déboggage, c'est la ligne If ActiveSheet.Unprotect = True Then qui est surlignée en jaune
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 19/03/2015 à 18:10
Bonjour,

Je ne suis pas sur que Unprotect te permet d'interroger sur l'état de la feuille. Je crois que cela fait seulement l'action de déverrouiller.

Un petit saut sur google. "VBA savoir si une feuille est verrouillé".
Et je trouve :
If Sheets(1).ProtectContents = True Then
MsgBox "Le contenu de Feuil1 est protégé."
End If


Je crois que tu peux essayer ça et si c'est true, alors tu unprotect la feuille. Adapter avec activesheet.

Bon test.
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
19 mars 2015 à 18:18
Bonjour a vous deux

ActiveSheet.Unprotect ---> instruction pour deproteger une feuille

ActiveSheet.ProtectContents ---> instruction pour tester si feuille protegee (true) ou pas (false)
0
PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
19 mars 2015 à 21:02
Merci F894009, tu confirmes mes soupçons.
0