Pour importer cette fois-ci comme tu le demandes
Sub importer()
' cocher la réference Microsoft Visual Basic for Applications Extensibility 5.3
Dim Wb1 As Workbook, vbCmp1 As Object
Dim Wb2 As Workbook, vbCmp2 As Object
Dim choix As Variant
choix = Application.GetOpenFilename("Fichiers (*.xlsm*),*.xlsm")
If choix = False Then Exit Sub
Set Wb1 = Workbooks.Open(choix)
Set Wb2 = ThisWorkbook
Wb2.Sheets(1).Cells.Clear
supprimer Wb2
Wb1.Sheets(1).Cells.Copy Destination:=Wb2.Sheets(1).Cells(1, 1)
For Each vbCmp1 In Wb1.VBProject.VBComponents
Set vbCmp2 = Wb2.VBProject.VBComponents.Add(1)
RecopierMacro vbCmp1, vbCmp2
Next
End Sub
Sub RecopierMacro(de As VBComponent, vers As VBComponent)
With vers.CodeModule
For i = 1 To de.CodeModule.CountOfLines
.InsertLines i, de.CodeModule.Lines(i, 1)
Next
End With
End Sub
Sub supprimer(wb As Workbook)
Dim VBComp As Object
Dim VBComps As Object
Set VBComps = wb.VBProject.VBComponents
For Each VBComp In VBComps
If VBComp.Name <> "ModuleRecopie" Then
If VBComp.Type = 1 Then VBComps.Remove VBComp
End If
Next VBComp
End Sub