Recherche une solution suite à verrouillage avec un mot de passe du VBAProje

genus17

XLDnaute Nouveau
Bonsoir le Forum,

J’ai un fichier source « DJN Config organique Macro anti-doublons qui fonctionne.xlsm » dedans il y a une macro anti-doublons sur chaque onglet et avec une comparaison entre onglets sur certaines lignes, ou je voudrais mettre une protection par mot de passe.

J’ai un second fichier « DJN Menu.xls » qui me serre à faire des extractions du fichier « DJN Config organique Macro anti-doublons qui fonctionne.xlsm » par un choix de colonne, afin de voir si j’ai des manquants dans la colonne choisi.

Un troisième fichier « Extraction_manquants.xls » qui est le résultat de l’extraction.

Mon problème, c’est que si je veux mettre une protection dans mon premier fichier « DJN Config organique Macro anti-doublons qui fonctionne.xlsm » ma macro ne fonctionne plus car je ne trouve pas le bon code pour faire le déverrouillage avec le mot de passe du VBAProject.

J’espère que je suis clair.

Pouvez-vous me venir en aide ?

Merci de vos réponses.

Salutations
 
Dernière édition:

genus17

XLDnaute Nouveau
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProject

Voilà mon code:

VB:
 Sub Extraction_manquants_DJN()
'
' Extraction_manquants_DJN Macro
' Macro enregistrée le 13/07/2012 par

VB:
 Dim chifnum As Integer      ' Nb de chiffres pour n° de rame
Dim nbrame As Integer       ' Nb de rames
Dim rame0 As Integer        ' N° de la rame de référence (DLC type)
Dim rame1 As Integer        ' N° de la 1ère rame
Dim rameder As Integer      ' N° de la dernière rame
Dim veh As Integer          ' Nbre de véhicules par rame
Dim lgr As Integer          ' N° de ligne contenant les n° de rames
Dim lg1 As Integer          ' 1ère ligne du tableau
Dim lgimp As Integer        ' Compteur de lignes pour impression
Dim coldeb As Integer       ' N° de colonne de la 1ère rame
Dim colfin As Integer       ' N° de colonne de la dernière rame
Dim efcol As Integer        ' Nb de colonnes à effacer
Dim VBComp As Variant       ' suppression des macros dans le fichier Extraction_manquants2.xls
Dim vbComps As Variant      ' suppression des macros dans le fichier Extraction_manquants2.xls

VB:
 '>>>>>>>     DONNEES A ACTUALISER SELON LE PROJET    <<<<<<<<<
nbrame = 33                 ' Nb de rames ou n° de la dernière rame
rame0 = 1000                 ' N° de la rame 0
rame1 = 1001                 ' N° de la rame 1
rameder = 1033               ' N° de la dernière rame
chifnum = 4                 ' Nb de chiffres pour n° de rame
veh = 5                     ' Nbre de véhicules par rame
lgr = 3                     ' N° de ligne contenant les n° de rames
coldeb = 4                  ' N° de colonne de la 1ère rame
colfin = nbrame + 4         ' N° de colonne de la dernière rame.

VB:
 '>>>>>>>     DONNEES A ACTUALISER SELON LE PROJET    <<<<<<<<<

Cells(8, 3).Select                  ' Positionner curseur sur titre Menu
rame = ""
Sheets("Fond écran").Select         ' Afficher page blanche
NumRame.Show                        ' Boîte d'inscription N° de rame

If rame = "" Then GoTo fin2
nrame = rame                        ' N° de rame
If nrame > rameder Then GoTo fin2
If nrame < rame0 Then GoTo fin2
If nrame > rame0 And nrame < rame1 Then GoTo fin2
Sheets("Menu").Select               ' Revenir sur écran Menu

VB:
 ChDir "D:\Boulot\Essai Macro"
    Workbooks.Open Filename:= _
    "D:\Boulot\Essai Macro\DJN Config organique Macro anti-doublons qui fonctionne.xlsm", Password:="", WriteResPassword:=""

VB:
 ChDir "D:\Boulot\Essai Macro"
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Boulot\Essai Macro\Extraction_manquants2.xls" _
        , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

VB:
 ActiveWorkbook.ExclusiveAccess              ' suppression du fichier en partagé
VB:
 J’ai un message « Erreur d’exécution 50289, Impossible d’effectuer cette opération tant que le projet est protégé. »
VB:
 Set vbComps = ActiveWorkbook.VBProject.VBComponents
            For Each VBComp In vbComps
                Select Case VBComp.Type
                    Case 1 To 3
                    vbComps.Remove VBComp
                    Case Else
                    With VBComp.CodeModule
                    .DeleteLines 1, .CountOfLines
                    End With
                End Select
        Next VBComp
 

genus17

XLDnaute Nouveau
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProject

Bonsoir le Forum,

Il y a pas une autre solution pour faire un protection des marco dans un fichier et ne pas faire de verrouillage avec un mot de passe du VBAProject?

Avez vous une solution?

Merci de votre aide.

Cordialement
 

chris

XLDnaute Barbatruc
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProject

Bonjour

Si je comprends bien tu veux modifier le module.

Il faut déprotéger le module : MichD qui intervient sur ce forum a publié un exemple ici
 

genus17

XLDnaute Nouveau
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProject

Bonsoir Chris,

Merci pour ton aide, je regarde le code ce soir pour voir si j'arrive à le mettre dans le mien.
Je pense à vu de nez que c'est bien ce que je recherche.
Je te tiens au courant

Cordialement
 

genus17

XLDnaute Nouveau
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProject

Hello Chris,

J'ai une bonne nouvelle, ma macro fonctionne et cela grace à toi.;)
Merci pour ton aide, c'est trop cool :p
Depuis le temp que je recherche une solution, c'est le top
 

chris

XLDnaute Barbatruc
Re : [Résolu] Recherche une solution suite à verrouillage avec un mot de passe du VBA

Bonjour

Remercions aussi MichD car son exemple est très bien fait : grâce à toi je l'ai découvert et mis dans mon grenier Excel.

C'est cela XLD : une question et hop, tout le monde avance. Quand, en plus, l'intéressé remercie comme toi, c'est le top !

Bonne journée.
 

genus17

XLDnaute Nouveau
Re : [Résolu] Recherche une solution suite à verrouillage avec un mot de passe du VBA

Bonjour Chris et le Forum,

Pas de problème pour le merci à MichD, c'est déjà fait en plus un message perso.
C'est bien normal de dire merci aux personnes qui aide.
C'est clair aussi que tout le monde avance avec XLD, c'est vraiment le Top comme site sur le net.
Merci une fois de plus à tout le monde.
 

genus17

XLDnaute Nouveau
Recherche une solution suite à verrouillage avec un mot de passe du VBA

Hello Chris,

Mince, il y a un bug, la macro ne fonctionne pas tjrs et je ne trouve pas la solution

C'est possible d'avoir ton aide stp, merci

Cordialement

P.S:
Les autres fichiers (DJN Config organique Macro anti-doublons qui fonctionne.xlsm=> 742 Ko et Extraction_manquants2.xls=>1755 Ko, ne passe pas
 

Pièces jointes

  • DJN Menu.xlsm
    51.8 KB · Affichages: 63
Dernière édition:

chris

XLDnaute Barbatruc
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProje

Bonjour

Tu ne dis pas ce qui ne marche pas. Est-ce la suppression du mot de passe ?
Sur ce fil, ils évoquent un problème de timing qui se produisait sir les anciennes versions : je ne sais pas si c'est toujours d'actualité.
VBA - Protection projet par code VBA : Forum Excel

Sinon précise le problème.

En général j'utilise des xla : je ne manipule jamais les projets donc je n'ai pas d'expérience dans ce cas précis.
 

genus17

XLDnaute Nouveau
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProje

Chris,

Oui c'est bien un problème sur la supression qui ne fonctionne pas tjrs.
Hier soir apres avoir mis le cod, wahouuu nickel.
Ce matin en voulant le mettre en exploitation sur le réseau aie, le bug.
J'ai fait la manip un grand nombre de choix et tac il fonctionne, je sauvegarde l'extraction du fichier, je recommence et bug
 

genus17

XLDnaute Nouveau
Re : Recherche une solution suite à verrouillage avec un mot de passe du VBAProje

Chris,

Je viens de faire des essais avec ton lien:

Voilà le cod dans ma macro:
Sub DeProtect()
Workbooks.Open "D:\Boulot\Essai Macro\Extraction_manquants2.xls"
UnprotectVBProject Workbooks("Extraction_manquants2.xls"), "ghosts060967"
Do
i = i + 1: DoEvents
Loop While i < 5000
End Sub

Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object

Set vbProj = WB.VBProject

'can't do it if already unlocked!
If vbProj.Protection <> 1 Then Exit Sub

Set Application.VBE.ActiveVBProject = vbProj

' now use lovely SendKeys to quote the project password
SendKeys Password & "~~"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
End Sub

J'ai fait 10 essais:
1=> Ok; 6=> Ok
2=> Pas Bon ; 7=> Ok
3=>Ok ; 8=> Pas Bon
4=>Ok ; 9=> Pas Bon
5=> Ok ; 10=> Pas Bon

C'est pas le bon code, il fonctionne quand il veux :mad:
C'est quoi des xla ?
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
158

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87