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.
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
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
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
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
Depuis le temp que je recherche une solution, c'est le top
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.
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.
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
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
C'est quoi des xla ?