Bonjour à vous et désolé pour mon absence j'étais en déplacement pro
@ LouReeD : La macro fonctionnait très bien avant d'y intégrer un mot de passe, du coup je ne pense pas que le problème vienne de la. Sinon je serais encore plus perdu et demanderais surement encore plus de conseil.
@ fred2406 : J'ai essayer d'intégrer ta macro à la mienne mais j'ai encore quelque souci (ps : Je n'ai pas Microsoft Forms2.0 dans mes références).
Private Sub Workbook_BeforeClose(Cancel As Boolean)
moisannee = Format(Date, "yyyy-mm-dd")
Sheets("légende").Activate
If DateDiff("m", Range("B" & 11).Value, Now, vbMonday, vbFirstJan1) >= 1 Then
If MsgBox("L'archivage du fichier va être réalisée. Les informations que vous avez modifier peuvent-elles être enregistrer?" & vbCrLf & "(Si oui merci de ne pas intérrompre les 3 enregistrements qui vont suivre)", vbYesNo) = vbNo Then
Exit Sub
Else
Range("B" & 11) = moisannee
ActiveWorkbook.Save
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\JC5860BN\Desktop\a suppr\save auto\Suivi modifications départs " & moisannee & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
UnprotectVBProject ActiveWorkbook, ""
Supprimer_Macro_Precise
End If
End If
End Sub
Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
Dim vbProj As Object
Set vbProj = WB.VBProject
If vbProj.Protection <> 1 Then Exit Sub
Set Application.VBE.ActiveVBProject = vbProj
SendKeys Password & "mdp"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
End Sub
Sub Supprimer_Macro_Precise()
Dim Debut As Integer, Lignes As Integer
Dim NomMod As String, NomMacro As String
NomMod = "ThisWorkbook"
NomMacro = "Workbook_BeforeClose"
With ThisWorkbook.VBProject.VBComponents(NomMod).CodeModule
Debut = .ProcStartLine(NomMacro, 0)
Lignes = .ProcCountLines(NomMacro, 0)
.DeleteLines Debut, Lignes
ActiveWorkbook.Save
End With
End Sub
Par contre j'ai encore quelques problèmes:
J'ai bien le mot de passe qui se remplie correctement par contre je doit cliquer sur "OK" manuellement et dans le même temps un message d'erreur m'indiquant que la macro ne se poursuit pas car les macros sont protéger.Et quand je clique sur "OK" ça m'enlève la protection et affiche les propriétés de VBAproject.
Mais du coup le message d'erreur précédent arrête la macro et ne la relance pas et mon archivage ne se finit pas convenablement.
Je vous mets le fichier excel épuré en pièce jointe si je n'ai pas été assez clair.
Encore merci pour votre aide
edit : Je suis sur excel 2013 pour info