Bonjour,
Dans l'ordre je vous explique ce que je souhaite faire, ce que je sais faire puis ou ca coince.

J'ai un fichier bien lourd avec Module userform et code dans les feuilles.
Je souhaite pouvoir en quelque sorte délocaliser le code. En gros avoir un bouton qui me permet d'aller chercher la dernière version des macro sur le résaux et de les charger à la place des macro actuels.

Ce que je sais faire:
Ou plus tot ne connaissant pas grand chose, voir même rien, à la manipulation de code par macro ce que j'ai trouvé dans la partie contribution et la faq

Avec un ficheir B supprimer tous les modules et userform d'un fichier A
Merci Ouskel'n'or
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub ListerLesModulesAeffacer()
Dim CL1 As Workbook
Dim CL2 As Workbook
Dim VBComp
    Set CL1 = ThisWorkbook 'Le fichier contenant ces macros
    Set CL2 = Workbooks("fichierA.xls")
    Set VBComp = CL2.VBProject.VBComponents
    With VBComp
        For Each VBComp In CL2.VBProject.VBComponents
            If VBComp.Type = 1 Or VBComp.Type = 3 Then _
               SupprimerLeModule CL2, VBComp.Name
        Next VBComp
    End With
    Set CL2 = Nothing
    Set VBComp = Nothing
    CL1.Close False 'Fermeture sans enregistrer du fichier contenant ces macros
End Sub
 
Sub SupprimerLeModule(CL2, NomModule)
    With CL2.VBProject
        .VBComponents.Remove .VBComponents(NomModule)
    End With
End Sub
Exporter tous le code contenu du fichier A
Encore une fois Merci Ouskel'n'or (au fait pourquoi on ne le voi plus )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Sub exportt()
Dim LeFich
 
' Activation de la référence
' "Microsoft Visual Basic for Applications Extensibility"
On Error Resume Next
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:="{0002E157-0000-0000-C000-000000000046}", Major:=0, Minor:=0
On Error GoTo 0
For Each LeFich In ThisWorkbook.VBProject.VBComponents
    Select Case LeFich.Type
        Case 1
            ThisWorkbook.VBProject.VBComponents(LeFich.Name).export "C:\MesMacros\" & LeFich.Name & ".bas"
        Case 2
            ThisWorkbook.VBProject.VBComponents(LeFich.Name).export "C:\MesMacros\" & LeFich.Name & ".cls"
        Case 3
            ThisWorkbook.VBProject.VBComponents(LeFich.Name).export "C:\MesMacros\" & LeFich.Name & ".frm"
        Case 100
            ThisWorkbook.VBProject.VBComponents(LeFich.Name).export "C:\MesMacros\LesFeuilles\" & LeFich.Name & ".cls"
    End Select
Next
 
End Sub
Importer les fichier

là j'utilise tels quel le code de Fred65200



Mon problème, Je récupère sans problème mes modules, mes userforms, mais par contre, les code contenue dans mes feuilles ne sont pas effacé, et pas chargé non plus il se retrouve simplement dans des modules de classe.
Et accessoirement importer les macro dans le fichier A a partir du fichier B (je ne sais que importer dans A a partir de A)

je sais ca fait pas mal de question mais si quelqu'un a un peu de temps a me consacrer, ca me dépannerais bien

ps : il faudrait que cela tourne sous 2003 et 2000

Edit : j'arrive a exporter a partir de B dans A

Sinon j'ai pensé a tout délocaliser dans des subroutines contenue dans les modules
exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Private Sub Worksheet_SelectionChange(ByVal target As Range)
chgselect(target)
sub
et dans un module
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
sub chgselect(target as range)
'mon code
end sub
C'est pas le plus pratique quand même, si personne n'a mieux je ferais ca