OTER LA PROTECTION D'UNE FEUILLE EXCEL AVEC UNE MACRO

cs_Marcus94 Messages postés 2 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 24 décembre 2003 - 24 déc. 2003 à 17:17
acrcorp Messages postés 96 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 23 septembre 2007 - 17 janv. 2012 à 12:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/3882-oter-la-protection-d-une-feuille-excel-avec-une-macro

acrcorp Messages postés 96 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 23 septembre 2007
17 janv. 2012 à 12:15
Dès fois, on protège son document pour que personne ne puisse le modifier. Et puis, des années plus tard, on veut le modifier soit même... et la c'est le drame... Qu'est ce que j'ai bien pu mettre comme mot de passe ? ^^
Alors on se dit qu'il doit y'avoir quelqu'un quelque part qui a eu le même problème et qui nous a pondu une jolie marco pour ça, et on tombe ici ^^.
Finalement, tout tient dans cette commande "ActiveSheet.Unprotect" dont il fallait connaitre l'existance.
En tout cas merci pour ce code, dont l'interêt pratique est indiscutable ^^
thonymontanna Messages postés 50 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 13 octobre 2011
17 sept. 2010 à 14:16
Bonjour tout le monde,

vous voudrez bien excuser ma question, certainement basique.

Etant novice dans Excel, j'aimerai connaitre la procédure pour utiliser cette macro sous excel 2007.

Merci pour cette contribution
darck95 Messages postés 1 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 16 mai 2010
16 mai 2010 à 12:49
Merci a toi c'est génial je vais pouvoir en faire des choses avec ca
Radar69 Messages postés 3 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 29 juin 2009
29 juin 2009 à 12:11
J'ai testé la macro ci-dessus, c'est fort !!!
(Heureusement que l'essentiel de mes protections se trouvent dans le projet VBA, et qu'il n'a pas le même mot de passe.)

Ca laisse perplexe quand-même... Bravo !
Radar69 Messages postés 3 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 29 juin 2009
29 juin 2009 à 12:04
Protéger son application Excel, oui il y a des possibilités...
Je n'ai pas tout regardé en détail, mais il y a là un bon attirail de protections de base:
http://www.vbfrance.com/codes/ASTUCE-AMELIORER-SECURITE-ACCES-DONNEES-CODE-FICHIER-EXCEL_48448.aspx

Pour ma part, j'ai une application Excel ayant comme protection: un Numéro de série lié au Nom de l'utilisateur, qui permet d'utiliser l'application au complet si le code est donné.
J'ai mis le maximum de protection (cache les feuilles au démarrage si macros désactivées, remet le mot de passe au feuilles et au classeurs à chaque changement de feuille, etc...), un peu tout ce qu'il y a dans l'attirail ci-dessus.

Alors bien sûr si on accède au code VBA (protégé par mot de passe) on peut décortiquer le tout, mais si on cache bien les routines de manière déroutante, et si notre application n'a pas un trop grand succés. Alors on passe entre les gouttes des vrais hackers, et notre application peut être (relativement) protégée.
J'avais choisi de lier la protection avec le Nom de l'utilisateur, car dans mon cas, ce dernier avait une place primordiale dans le classeur. Pour faire mieux, on pourrait le lier au numéro de série du disque-dur par exemple.

Quand à vivre de cela ? 3000 téléchargement, environ 50 paiements...
Mais cela fait toujours plaisir de recevoir un enregistrement, c'est de l'argent de poche pour les vacances. :-)

(Concenant l'application et ses protections, je peux vous donner plus d'infos si nécessaire)

Merci à vous tous, et bravo à ce super site.
MIGMAG1 Messages postés 3 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 24 février 2007
25 févr. 2008 à 14:42
Bonjour,
Que faut-il faire pour bloquer l'exécution de cette macro afin de pouvoir concevoir des logiciels sous excel et vivre avec ??
MNG
didomixe Messages postés 1 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 août 2007
8 août 2007 à 12:34
Salut j'ai créer une base de données excel et j'ai oublié le mot de passe pouvez-vous me donner un coup de main?
yourspinner Messages postés 26 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 22 janvier 2008
19 mars 2007 à 15:10
Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii :)
Brianeau Messages postés 1 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 11 janvier 2007
11 janv. 2007 à 20:06
Juste pour mise à jour à date : je confirme, fonctionne toujours sur Excel 2003.
Merci à tous.
cs_tagadas Messages postés 1 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 5 septembre 2006
5 sept. 2006 à 13:52
Macro fonctionne trés avec excel 2003, merci encore ;-))
crewaskee Messages postés 1 Date d'inscription lundi 12 août 2002 Statut Membre Dernière intervention 18 août 2006
18 août 2006 à 09:45
Cette macro fonctionne a merveille, merci.
cs_le breton fou Messages postés 1 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 9 février 2006
9 févr. 2006 à 00:06
Je suis tellement nul que je n'ai pas compris la moitié de ce que vous expliquez. J'ai un classeur excel protégé et je rame pour lui ôter cette sinistre protection y a t'il quelqu'un(e) à qui je peux envoyer par mail ce fichu fichier prévisionnel (qui n'a rien de secret mais il est vital pour moi de pouvoir le modifier) pour qu'il lui vire cette clé? d'avance merci beaucoup de votre aide.
nasserb Messages postés 2 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 15 février 2006
3 févr. 2006 à 15:16
merci camarade du monde genereux dans la transmission de la connaissance
cs_salsitawapa Messages postés 7 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 19 avril 2006
23 oct. 2005 à 22:25
Merci à granddebutant et NaVince
cs_salsitawapa Messages postés 7 Date d'inscription samedi 18 novembre 2000 Statut Membre Dernière intervention 19 avril 2006
23 oct. 2005 à 22:24
Fonctionne très bien une fois les petites fautes corrigée :

Sub enleve_protection()
Dim a, b, c, d, e, f, g, h, i, j, k, l As Integer
On Error Resume Next
For a = 65 To 66
For b = 65 To 66
For c = 65 To 66
For d = 65 To 66
For e = 65 To 66
For f = 65 To 66
For g = 65 To 66
For h = 65 To 66
For i = 65 To 66
For j = 65 To 66
For k = 65 To 66
For l = 32 To 126
ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) & _
Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) & _
Chr(i) & Chr(j) & Chr(k) & Chr(l)
If ActiveSheet.ProtectContents = False Then
MsgBox "La Protection a été enlevée - Un mot de passe satisfaisant est :" & Chr(a) & Chr(b) & _
Chr(c) & Chr(d) & Chr(e) & Chr(f) & Chr(g) & _
Chr(h) & Chr(i) & Chr(j) & Chr(k) & Chr(l)
Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
allo300 Messages postés 1 Date d'inscription mardi 6 septembre 2005 Statut Membre Dernière intervention 6 septembre 2005
6 sept. 2005 à 13:37
j'arrivve pas a trouvé la zone se saisie du code...
ile me demande toujours un mot de passe??????????
NaVince Messages postés 1 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 3 août 2004
3 août 2004 à 14:42
Exact, il y a juste une toute petite erreur de frappe de notre ami granddebutant : lorsque l'on veut retourner à la ligne, il faut mettre un espace entre le "&" et le "_". La ligne correctement écrite donne :

ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) & _
Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) & _ ... et ainsi de suite.

Sinon, ça marche particulièrement bien ! Félicitations granddebutant !

Vince.
cs_Marcus94 Messages postés 2 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 24 décembre 2003
24 déc. 2003 à 17:17
Je l'ai testé sous excel 2000, voilà ce qu'affiche la compil ?? :
Erreur de compilation , erreur de syntaxe sur les lignes :

ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) &_
Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) &_

Marcus.