Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

desactiver mot de passe vbaproject

23 réponses
Avatar
magic-dd
bonjour

par un bouton dans ma barre d'otils, je souhaiterais y affecter une
macro pour desactiver le mot de passe de mes feuilles excel pour
lequel je suis le seul =E0 pouvoir modifier les lignes de code

le probleme est que le mot de passe etant long, cela est penible de le
retaper a chaque fois que jo'uvre une feuille.

merci de votre aide.

10 réponses

1 2 3
Avatar
magic-dd
salut manu

super ca mais j'ai une erreur ici
dans class1

If Wb.VBProject.Protection = vbext_pp_locked Then


surligné en jaune et ca bloque

prrrrrr je bloque

comme depuis le debut d'ailleurs

On 9 mai, 12:36, "MichDenis" wrote:
Une façon intéressante de traiter la problématique...
C'est Magic ...;-)

"tissot.emmanuel" a écrit dans le message de news:

Bonsoir,

Les codes que tu nous fournis sont très intéressants et non moins com plexes.
J'ai donc essayé d'en faire une petite synthèse susceptible de répo ndre au
problème initialement soulevé par Magic DD.

Citation:
sur mon pc, j'ai tous mes classeurs excel (120 environ)
ceux ci ont leurs projet macro de proteger ce qui veux dire que si on
veut acceder au VBA, il faut ce mot de passe.
je suis le seul autorisé à modifier eventuelement des lignes de code
dans VBA
c'est pourquoi je recherche la methode pour desactiver ce mot de passe
à chaque ouverture de fichier sur et uniquement sur mon pc.
Fin de citation.

Voici ce que j'ai testé avec succès sur ma configuration (WinXP SP2 + XL
2003):

Dans le classeur Perso.xls
Ouvrir VBE>Outils>References
Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Puis insérer un module de classe (garder le nom Classe1 par défaut) e t y
copier le code suivant:

Public WithEvents ThisApplication As Application

Private Sub ThisApplication_WorkbookOpen(ByVal Wb As Workbook)
If Wb.VBProject.Protection = vbext_pp_locked Then
Application.VBE.CommandBars.FindControl(, 2578).Execute
SendKeys "shazam" 'Le mdp de tous tes classeurs
SendKeys "{ENTER}"
SendKeys "{ESC}" 'Quitte la fenetre propriete du projet
End If
End Sub

Dans le module ThisWorkbook de Perso.xls copier le code suivant:

Dim xlApp As Classe1

Private Sub Workbook_Open()
Set xlApp = New Classe1
Set xlApp.ThisApplication = Application
End Sub

Enregistrer le tout, fermer Excel, ouvrir Excel. Ouvrir un classeur
quelconque, normalement le projet VBA est dévérouillé sans qu'on ai t rien eu
à faire si tant est bien sur que le mot de passe soit correct, dans le cas
contraire la boite de dialogue demandant le mot de passe s'affiche.

Cordialement,

Manu/


Avatar
MichDenis
Tu as oublié cet opération à faire lorsque la fenêtre de l'éditeur
de code de ton classeur Perso.xls est active.

| Dans le classeur Perso.xls
| Ouvrir VBE>Outils>References
| Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Et n'oublie pas par la suite d'enregistrer ton classeur perso.xls.









"magic-dd" a écrit dans le message de news:

salut manu

super ca mais j'ai une erreur ici
dans class1

If Wb.VBProject.Protection = vbext_pp_locked Then


surligné en jaune et ca bloque

prrrrrr je bloque

comme depuis le debut d'ailleurs

On 9 mai, 12:36, "MichDenis" wrote:
Une façon intéressante de traiter la problématique...
C'est Magic ...;-)

"tissot.emmanuel" a écrit dans le message de news:

Bonsoir,

Les codes que tu nous fournis sont très intéressants et non moins complexes.
J'ai donc essayé d'en faire une petite synthèse susceptible de répondre au
problème initialement soulevé par Magic DD.

Citation:
sur mon pc, j'ai tous mes classeurs excel (120 environ)
ceux ci ont leurs projet macro de proteger ce qui veux dire que si on
veut acceder au VBA, il faut ce mot de passe.
je suis le seul autorisé à modifier eventuelement des lignes de code
dans VBA
c'est pourquoi je recherche la methode pour desactiver ce mot de passe
à chaque ouverture de fichier sur et uniquement sur mon pc.
Fin de citation.

Voici ce que j'ai testé avec succès sur ma configuration (WinXP SP2 + XL
2003):

Dans le classeur Perso.xls
Ouvrir VBE>Outils>References
Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Puis insérer un module de classe (garder le nom Classe1 par défaut) et y
copier le code suivant:

Public WithEvents ThisApplication As Application

Private Sub ThisApplication_WorkbookOpen(ByVal Wb As Workbook)
If Wb.VBProject.Protection = vbext_pp_locked Then
Application.VBE.CommandBars.FindControl(, 2578).Execute
SendKeys "shazam" 'Le mdp de tous tes classeurs
SendKeys "{ENTER}"
SendKeys "{ESC}" 'Quitte la fenetre propriete du projet
End If
End Sub

Dans le module ThisWorkbook de Perso.xls copier le code suivant:

Dim xlApp As Classe1

Private Sub Workbook_Open()
Set xlApp = New Classe1
Set xlApp.ThisApplication = Application
End Sub

Enregistrer le tout, fermer Excel, ouvrir Excel. Ouvrir un classeur
quelconque, normalement le projet VBA est dévérouillé sans qu'on ait rien eu
à faire si tant est bien sur que le mot de passe soit correct, dans le cas
contraire la boite de dialogue demandant le mot de passe s'affiche.

Cordialement,

Manu/


Avatar
magic-dd
j'ai bien coche cette option mais rien y fait



On 9 mai, 21:26, "MichDenis" wrote:
Tu as oublié cet opération à faire lorsque la fenêtre de l'édit eur
de code de ton classeur Perso.xls est active.

| Dans le classeur Perso.xls
| Ouvrir VBE>Outils>References
| Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Et n'oublie pas par la suite d'enregistrer ton classeur perso.xls.

"magic-dd" a écrit dans le message de news:

salut manu

super ca mais j'ai une erreur ici
dans class1

If Wb.VBProject.Protection = vbext_pp_locked Then

surligné en jaune et ca bloque

prrrrrr je bloque

comme depuis le debut d'ailleurs

On 9 mai, 12:36, "MichDenis" wrote:

Une façon intéressante de traiter la problématique...
C'est Magic ...;-)

"tissot.emmanuel" a écrit dans le message d e news:

Bonsoir,

Les codes que tu nous fournis sont très intéressants et non moins c omplexes.
J'ai donc essayé d'en faire une petite synthèse susceptible de ré pondre au
problème initialement soulevé par Magic DD.

Citation:
sur mon pc, j'ai tous mes classeurs excel (120 environ)
ceux ci ont leurs projet macro de proteger ce qui veux dire que si on
veut acceder au VBA, il faut ce mot de passe.
je suis le seul autorisé à modifier eventuelement des lignes de code
dans VBA
c'est pourquoi je recherche la methode pour desactiver ce mot de passe
à chaque ouverture de fichier sur et uniquement sur mon pc.
Fin de citation.

Voici ce que j'ai testé avec succès sur ma configuration (WinXP SP2 + XL
2003):

Dans le classeur Perso.xls
Ouvrir VBE>Outils>References
Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Puis insérer un module de classe (garder le nom Classe1 par défaut) et y
copier le code suivant:

Public WithEvents ThisApplication As Application

Private Sub ThisApplication_WorkbookOpen(ByVal Wb As Workbook)
If Wb.VBProject.Protection = vbext_pp_locked Then
Application.VBE.CommandBars.FindControl(, 2578).Execute
SendKeys "shazam" 'Le mdp de tous tes classeurs
SendKeys "{ENTER}"
SendKeys "{ESC}" 'Quitte la fenetre propriete du projet
End If
End Sub

Dans le module ThisWorkbook de Perso.xls copier le code suivant:

Dim xlApp As Classe1

Private Sub Workbook_Open()
Set xlApp = New Classe1
Set xlApp.ThisApplication = Application
End Sub

Enregistrer le tout, fermer Excel, ouvrir Excel. Ouvrir un classeur
quelconque, normalement le projet VBA est dévérouillé sans qu'on ait rien eu
à faire si tant est bien sur que le mot de passe soit correct, dans l e cas
contraire la boite de dialogue demandant le mot de passe s'affiche.

Cordialement,

Manu/




Avatar
MichDenis
As-tu essayé de remplacer

WB dans la ligne de code
If Wb.VBProject.Protection = vbext_pp_locked Then

Par

If ActiveWorkbook.VBProject.Protection = vbext_pp_locked Then




"magic-dd" a écrit dans le message de news:

j'ai bien coche cette option mais rien y fait



On 9 mai, 21:26, "MichDenis" wrote:
Tu as oublié cet opération à faire lorsque la fenêtre de l'éditeur
de code de ton classeur Perso.xls est active.

| Dans le classeur Perso.xls
| Ouvrir VBE>Outils>References
| Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Et n'oublie pas par la suite d'enregistrer ton classeur perso.xls.

"magic-dd" a écrit dans le message de news:

salut manu

super ca mais j'ai une erreur ici
dans class1

If Wb.VBProject.Protection = vbext_pp_locked Then

surligné en jaune et ca bloque

prrrrrr je bloque

comme depuis le debut d'ailleurs

On 9 mai, 12:36, "MichDenis" wrote:

Une façon intéressante de traiter la problématique...
C'est Magic ...;-)

"tissot.emmanuel" a écrit dans le message de news:

Bonsoir,

Les codes que tu nous fournis sont très intéressants et non moins complexes.
J'ai donc essayé d'en faire une petite synthèse susceptible de répondre au
problème initialement soulevé par Magic DD.

Citation:
sur mon pc, j'ai tous mes classeurs excel (120 environ)
ceux ci ont leurs projet macro de proteger ce qui veux dire que si on
veut acceder au VBA, il faut ce mot de passe.
je suis le seul autorisé à modifier eventuelement des lignes de code
dans VBA
c'est pourquoi je recherche la methode pour desactiver ce mot de passe
à chaque ouverture de fichier sur et uniquement sur mon pc.
Fin de citation.

Voici ce que j'ai testé avec succès sur ma configuration (WinXP SP2 + XL
2003):

Dans le classeur Perso.xls
Ouvrir VBE>Outils>References
Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Puis insérer un module de classe (garder le nom Classe1 par défaut) et y
copier le code suivant:

Public WithEvents ThisApplication As Application

Private Sub ThisApplication_WorkbookOpen(ByVal Wb As Workbook)
If Wb.VBProject.Protection = vbext_pp_locked Then
Application.VBE.CommandBars.FindControl(, 2578).Execute
SendKeys "shazam" 'Le mdp de tous tes classeurs
SendKeys "{ENTER}"
SendKeys "{ESC}" 'Quitte la fenetre propriete du projet
End If
End Sub

Dans le module ThisWorkbook de Perso.xls copier le code suivant:

Dim xlApp As Classe1

Private Sub Workbook_Open()
Set xlApp = New Classe1
Set xlApp.ThisApplication = Application
End Sub

Enregistrer le tout, fermer Excel, ouvrir Excel. Ouvrir un classeur
quelconque, normalement le projet VBA est dévérouillé sans qu'on ait rien eu
à faire si tant est bien sur que le mot de passe soit correct, dans le cas
contraire la boite de dialogue demandant le mot de passe s'affiche.

Cordialement,

Manu/




Avatar
magic-dd
pouretre + precis voici le message d'erreur

erreur 1004

acces par programme au visual basic n'est pas fiable

.............

c'est pourtant ce qu'on veut
lol ))
On 9 mai, 21:57, magic-dd wrote:
j'ai bien coche cette option mais rien y fait

On 9 mai, 21:26, "MichDenis" wrote:

Tu as oublié cet opération à faire lorsque la fenêtre de l'éd iteur
de code de ton classeur Perso.xls est active.

| Dans le classeur Perso.xls
| Ouvrir VBE>Outils>References
| Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Et n'oublie pas par la suite d'enregistrer ton classeur perso.xls.

"magic-dd" a écrit dans le message de news:

salut manu

super ca mais j'ai une erreur ici
dans class1

If Wb.VBProject.Protection = vbext_pp_locked Then

surligné en jaune et ca bloque

prrrrrr je bloque

comme depuis le debut d'ailleurs

On 9 mai, 12:36, "MichDenis" wrote:

Une façon intéressante de traiter la problématique...
C'est Magic ...;-)

"tissot.emmanuel" a écrit dans le message de news:

Bonsoir,

Les codes que tu nous fournis sont très intéressants et non moins complexes.
J'ai donc essayé d'en faire une petite synthèse susceptible de r épondre au
problème initialement soulevé par Magic DD.

Citation:
sur mon pc, j'ai tous mes classeurs excel (120 environ)
ceux ci ont leurs projet macro de proteger ce qui veux dire que si on
veut acceder au VBA, il faut ce mot de passe.
je suis le seul autorisé à modifier eventuelement des lignes de c ode
dans VBA
c'est pourquoi je recherche la methode pour desactiver ce mot de passe
à chaque ouverture de fichier sur et uniquement sur mon pc.
Fin de citation.

Voici ce que j'ai testé avec succès sur ma configuration (WinXP S P2 + XL
2003):

Dans le classeur Perso.xls
Ouvrir VBE>Outils>References
Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Puis insérer un module de classe (garder le nom Classe1 par défau t) et y
copier le code suivant:

Public WithEvents ThisApplication As Application

Private Sub ThisApplication_WorkbookOpen(ByVal Wb As Workbook)
If Wb.VBProject.Protection = vbext_pp_locked Then
Application.VBE.CommandBars.FindControl(, 2578).Execute
SendKeys "shazam" 'Le mdp de tous tes classeurs
SendKeys "{ENTER}"
SendKeys "{ESC}" 'Quitte la fenetre propriete du projet
End If
End Sub

Dans le module ThisWorkbook de Perso.xls copier le code suivant:

Dim xlApp As Classe1

Private Sub Workbook_Open()
Set xlApp = New Classe1
Set xlApp.ThisApplication = Application
End Sub

Enregistrer le tout, fermer Excel, ouvrir Excel. Ouvrir un classeur
quelconque, normalement le projet VBA est dévérouillé sans qu'o n ait rien eu
à faire si tant est bien sur que le mot de passe soit correct, dans le cas
contraire la boite de dialogue demandant le mot de passe s'affiche.

Cordialement,

Manu/






Avatar
MichDenis
Cela n'a rien à voir avec la procédure,

dans l'inferface de la feuille de calcul,
Barre des menus / outils / macro / sécurité / onglet Éditeurs approuvés,
et tu coches les 2 cases à cocher au bas de la fenêtre.




"magic-dd" a écrit dans le message de news:

pouretre + precis voici le message d'erreur

erreur 1004

acces par programme au visual basic n'est pas fiable

.............

c'est pourtant ce qu'on veut
lol ))
On 9 mai, 21:57, magic-dd wrote:
j'ai bien coche cette option mais rien y fait

On 9 mai, 21:26, "MichDenis" wrote:

Tu as oublié cet opération à faire lorsque la fenêtre de l'éditeur
de code de ton classeur Perso.xls est active.

| Dans le classeur Perso.xls
| Ouvrir VBE>Outils>References
| Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Et n'oublie pas par la suite d'enregistrer ton classeur perso.xls.

"magic-dd" a écrit dans le message de news:

salut manu

super ca mais j'ai une erreur ici
dans class1

If Wb.VBProject.Protection = vbext_pp_locked Then

surligné en jaune et ca bloque

prrrrrr je bloque

comme depuis le debut d'ailleurs

On 9 mai, 12:36, "MichDenis" wrote:

Une façon intéressante de traiter la problématique...
C'est Magic ...;-)

"tissot.emmanuel" a écrit dans le message de news:

Bonsoir,

Les codes que tu nous fournis sont très intéressants et non moins complexes.
J'ai donc essayé d'en faire une petite synthèse susceptible de répondre au
problème initialement soulevé par Magic DD.

Citation:
sur mon pc, j'ai tous mes classeurs excel (120 environ)
ceux ci ont leurs projet macro de proteger ce qui veux dire que si on
veut acceder au VBA, il faut ce mot de passe.
je suis le seul autorisé à modifier eventuelement des lignes de code
dans VBA
c'est pourquoi je recherche la methode pour desactiver ce mot de passe
à chaque ouverture de fichier sur et uniquement sur mon pc.
Fin de citation.

Voici ce que j'ai testé avec succès sur ma configuration (WinXP SP2 + XL
2003):

Dans le classeur Perso.xls
Ouvrir VBE>Outils>References
Cocher Microsoft Visual Basic for Applications Extensibility 5.3

Puis insérer un module de classe (garder le nom Classe1 par défaut) et y
copier le code suivant:

Public WithEvents ThisApplication As Application

Private Sub ThisApplication_WorkbookOpen(ByVal Wb As Workbook)
If Wb.VBProject.Protection = vbext_pp_locked Then
Application.VBE.CommandBars.FindControl(, 2578).Execute
SendKeys "shazam" 'Le mdp de tous tes classeurs
SendKeys "{ENTER}"
SendKeys "{ESC}" 'Quitte la fenetre propriete du projet
End If
End Sub

Dans le module ThisWorkbook de Perso.xls copier le code suivant:

Dim xlApp As Classe1

Private Sub Workbook_Open()
Set xlApp = New Classe1
Set xlApp.ThisApplication = Application
End Sub

Enregistrer le tout, fermer Excel, ouvrir Excel. Ouvrir un classeur
quelconque, normalement le projet VBA est dévérouillé sans qu'on ait rien eu
à faire si tant est bien sur que le mot de passe soit correct, dans le cas
contraire la boite de dialogue demandant le mot de passe s'affiche.

Cordialement,

Manu/






Avatar
magic-dd
bon merci les amis
la j'imprime plus
j'ai d'autres message d'errreur

je reprendrai ca à tete reposée

merci de votre investissement

:)
Avatar
tissot.emmanuel
Bonsoir,

Ci-dessous quelques test un peu plus poussés que je viens d'effectuer.

1) En ouvrant Excel depuis le raccourci bureau, Perso.xls s'ouvre puis un
classeur vierge s'ouvre:

a) Si "Faire confiance au projet VB" est décochée alors Erreur 1004 "L'acces
au programme par Vb n'est pas fiable" alors que la procedure examine le
projet de Perso.xls
b) Si "Faire confiance au projet VB" est cochée et que le projet de
Perso.xls est lui meme protege par le meme mot de passe alors la procédure
examine le projet de Perso.xls, le projet Perso.xls n'est pas déverouillé
mais aucune erreur ne se produit.
c) Si "Faire confiance au projet VB" est cochée et que le projet de
Perso.xls n'est pas protégé alors la procédure s'exécute normalement cad ne
fait rien.

2) En supposant le projet Perso.xls non protégé, ouverture d'Excel en
ouvrant un classeur non protégé quelconque

a) Si "Faire confiance au projet VB" est décochée alors Erreur 1004 "L'acces
au programme par Vb n'est pas fiable" alors que la procedure examine le
projet de Perso.xls (meme cas de figure que 1a)
b) Si "Faire confiance au projet VB" est cochée alors la procédure se
deroule normalement cad examine d'abord le projet de Perso.xls puis celui du
classeur quelconque.

3) En supposant le projet Perso.xls non protégé, ouverture d'Excel en
ouvrant un classeur dont le projet est protégé avec le bon mot de passe

a) Si "Faire confiance au projet VB" est décochée alors Erreur 1004 "L'acces
au programme par Vb n'est pas fiable" alors que la procedure examine le
projet de Perso.xls (meme cas de figure que 1a), que l'on clique sur "Fin"
ou "debug" le classeur s'ouvre mais son projet n'est pas déverrouillé, si
l'on a cliqué sur debug VBA reste en mode arret.
b) Si "Faire confiance au projet VB" est cochée alors la procédure se
deroule normalement cad examine d'abord le projet de Perso.xls puis celui du
classeur quelconque et deverouille le projet.

4) En supposant le projet Perso.xls non protégé, ouverture d'Excel en
ouvrant un classeur dont le projet est protégé avec un autre mot de passe

a) Si "Faire confiance au projet VB" est décochée alors Erreur 1004 "L'acces
au programme par Vb n'est pas fiable" alors que la procedure examine le
projet de Perso.xls (meme cas de figure que 1a et 3a), que l'on clique sur
"Fin" ou "debug" le classeur s'ouvre mais son projet n'est pas déverrouillé,
si on a clique sur debug VBA reste en mode arret.
b) Si "Faire confiance au projet VB" est cochée alors la procédure se
deroule normalement cad examine d'abord le projet de Perso.xls puis celui du
classeur, aucune erreur ne se produit mais la boite de saisie du mot de
passe s'affiche.

5)Excel déja ouvert, en supposant le projet Perso.xls non protégé, "Faire
confiance au projet VB" est cochée.

a) Ouverture via le menu fichier>ouvrir d'un fichier dont le projet est
protégé par le bon mot de passe. La procédure se deroule normalement aucune
erreur ne se produit, le projet est deverouille.
b) Ouverture via le menu fichier>ouvrir d'un fichier dont le projet est
protégé par un autre mot de passe. La procédure se deroule normalement
aucune erreur ne se produit mais la boite de saisie du mot de passe
s'affiche.(meme cas de figure que 4b)


Conclusion:
Rien ne sert de protéger le projet de Perso.xls.
"Faire confiance au projet VBA" doit impérativement etre cochée.
Tous ces test avec Excel 2003.

Merci à MichDenis pour le suivi.

Bonne chance Magic DD

Cordialement,

Manu/
Avatar
magic-dd
bonsoir

Un grand merci à vous tous

tout fonctionne

juste un pb de cablage dans ma tete, bref, c'est exactement ce qu'il
me fallait

encore une fois merci mille fois
Avatar
pellet15
Bonsoir Manu

J'ai copier cet macro et cela fonctionne bien sur un de mes Laptop et
ne fonctionne pas sur 2 autre appareille???

en ouvrant le message d'erreur " 70 " , medemande d'entré le mot de
passe et le VBA est arrêter sur la ligne du mot de passe.

Pourquoi et comment corriger ?


Merci
1 2 3