Bonjour le forum,
J'ai essayé de contourner le problème en mettant le même nombre de feuilles dans le classeur de destination.
Ça bloque sur la ligne du code ci-dessous:
With wbd.VBProject.VBComponents(v.CodeModule).CodeModule
Totalité du code:
Option Explicit
Sub RecopieModules()
Dim wbs As Workbook, wbd As Workbook, v As Object, f As String
Set wbs = Workbooks("TOTO.xls")
Set wbd = Workbooks("Classeur1")
If wbd.Sheets.Count < wbs.Sheets.Count Then Exit Sub
With wbs.VBProject
For Each v In .VBComponents
If v.Type < 4 Then
f = wbs.Path & "\RecopieModules." & Choose(v.Type, "bas", "cls", "frm")
v.Export f
wbd.VBProject.VBComponents.Import f
Kill f
If v.Type = 3 Then Kill Left(f, Len(f) - 1) & "x"
ElseIf v.Type = 100 Then
If v.CodeModule.CountOfLines > 0 Then
With wbd.VBProject.VBComponents(v.CodeModule).CodeModule
.DeleteLines 1, .CountOfLines
.InsertLines .CountOfLines + 1, v.CodeModule.Lines(1, v.CodeModule.CountOfLines)
End With
End If
End If
Next v
End With
End Sub
Peut-être modifier le code?
Merci d'avance pour vos éventuelles réponses
Bien cordialement