Modifier code VBA protégé par macro
Bonjour,
Je cherche a modifier une macro dans une série de fichier par l'intermédiaire d'une autre macro.
J'ai réussi a coder la modification, par contre je n'arrive pas a contourner le problème du code.
Je voudrais déprotéger le projet avec le code, modifier la macro, protéger le projet.
Qui aurais une idée pour avancer sur ce sujet ?
Public Sub modifcode()
'Dim Wb As Workbook
'Set Wb = Workbooks.Open(Repertoire & "\" & Fichier)
Application.VBE.MainWindow.Visible = True
mdp = "password"
SendKeys mdp & "~~"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
Application.Wait Now + TimeValue("0:00:03")
Dim PremLigne As Integer
Dim Numero As Single
With ActiveWorkbook.VBProject.VBComponents("NewLine").CodeModule
PremLigne = .ProcBodyLine("insertion", 0)
.InsertLines 22, ".EnableAutoFilter = True"
.InsertLines 23, ".EnableOutlining = True"
.DeleteLines 27, 1
.InsertLines 27, " AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True, UserInterfaceOnly:=True"
Set Application.VBE.ActiveVBProject = ActiveWorkbook.VBProject
End With
Cordialement.
Ch@p'
Bonjour à tous,
j'ai enfin réussi a trouver du code pour accéder au macro que j'ai protégé !
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 & "~~~"
Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
End Sub
Public Sub Test()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
UnprotectVBProject ActiveWorkbook, "Le mot de passe"
DoEvents
Application.ScreenUpdating = True
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
Maintenant j'attaque la suppression de toutes les lignes dans la macro pour permettre la réécriture dans le "ThisWorkbook" et cela ne fonctionne pas...
Des idées ?
Cordialement.
Ch@p'
Bonjour,
J'ai le même souci et ne trouve pas la solution.
avez-vous réussi à mettre au point le code nécessaire à cette opération ?
Si oui, acceptez-vous de me fournie le code correct.
Merci
Cdt
Daniel