Salut dan, re gloub,
J'ai fait un test sur mon ordi et ça marche. J'en déduis donc que la macro ne marche pas sur tous les postes. Il me semble avoir vu que la propriété FileDialog ne marche pas partout. Voici une autre méthode qui te permettra de choisir ton dossier :
Sub ExportToutesMacros()
Dim i As Integer, rep_path As String
Dim objShell As Object, objFolder As Object
Dim BIF_RETURNONLYFSDIRS As Long
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Choisir le dossier de destination", BIF_RETURNONLYFSDIRS)
If Not objFolder Is Nothing Then
rep_path = objFolder.Items.Item.Path & "\"
With ActiveWorkbook.VBProject
For i = 1 To .VBComponents.Count
With .VBComponents(i)
If .Type <= 3 Then
Select Case .Type
Case 1: .Export rep_path & .Name & ".bas"
Case 2: .Export rep_path & .Name & ".cls"
Case 3: .Export rep_path & .Name & ".frm"
End Select
End If
End With
Next
End With
Else
MsgBox "Aucune sélection effectuée !"
End If
Set objShell = Nothing
Set objFolder = Nothing
End Sub
gloub a écrit :
Une fois réimportés, est-ce que les modules seront réorganisés
Qu'entends-tu par "réorganisés" ?
Si tu veux supprimer les modules vides de macros, voici un code de silkyroad :
Sub supprimerTousModulesVides()
Dim vbComp As Object
Dim i As Integer, j As Integer
For Each vbComp In ActiveWorkbook.VBProject.VBComponents
If vbComp.Type = 1 Then
MsgBox vbComp.Name
i = vbComp.CodeModule.CountOfDeclarationLines + 1
j = vbComp.CodeModule.CountOfLines
If j < i Then ActiveWorkbook.VBProject.VBComponents.Remove vbComp
End If
Next
End Sub