'### Constantes à adapter ###
Const FEUILLE_EXPORT As String = "Feuil1"
Const TEMPO As String = "C:\___tempoPmo___"
Const MODULE_EXPORT As String = "Module1"
'############################
Sub ExportModuleInNewWorkbook()
Dim WB1 As Workbook
Dim WB2 As Workbook
Dim S1 As Worksheet
Dim S2 As Worksheet
Dim dummy
Set WB1 = ThisWorkbook
'--- Test de validité ---
On Error GoTo Erreur
dummy = WB1.VBProject.VBComponents.Count
On Error GoTo 0
'------------------------
Set S1 = Sheets(FEUILLE_EXPORT)
Set WB2 = Workbooks.Add(xlWBATWorksheet)
Set S2 = WB2.Sheets(1)
S2.Name = "____pmo"
S1.Copy After:=WB2.Sheets(1)
Application.DisplayAlerts = False
S2.Delete
WB1.VBProject.VBComponents(MODULE_EXPORT).Export TEMPO
WB2.VBProject.VBComponents.Import TEMPO
If Dir(TEMPO) <> "" Then Kill TEMPO
Exit Sub
Erreur:
If Err = 1004 Then
MsgBox "Dans Excel faites menu Outils/Macros/Sécurité... et, dans l'onglet Editeurs approuvés," & vbCrLf & _
"cochez la case Faire confiance au projet Visual Basic."
End If
End Sub