Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Contribuez
Contribuez Placez ici vos codes, sources, trucs et astuces que vous souhaitez partager avec les membres du club.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/02/2007, 16h31   #1
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Par défaut [VBA-E]Exporter / importer tous les modules et frm d'un projet

La question étant récurrente et connaissant la réponse...
Donc, très largement inspiré d'un code de SilkyRoad, mais ne l'ayant pas trouvé dans la FAQ, une solution pour exporter et importer tous les objets d'un projet VBA.

Pour exporter :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub ExporterFrmEtModules()
Dim LeFich
    For Each LeFich In ThisWorkbook.VBProject.VBComponents
        Select Case LeFich.Type
            Case 1
                ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".bas"
            Case 2
                ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".cls"
            Case 3
                ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".frm"
            Case 100
                ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\LesFeuilles\" & LeFich.Name & ".cls"
        End Select
    Next
End Sub
Attention : Les feuilles de calculs ont la même extension que les modules de classe (cls) (pas le même type). Je ne les placerais pas dans le même répertoire (...)

Pour importer :
Code :
1
2
3
4
5
6
7
8
Sub ImporterTousLesFichiersDunRépertoire()  '"d'après" SilkyRoad
Dim NomFich
    NomFich = Dir("D:\MesMacros\*.*")
    Do While NomFich <> ""
        Application.VBE.ActiveVBProject.VBComponents.Import (NomFich)
        NomFich = Dir
    Loop
End Sub
A toutes fins utiles
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2007, 12h21   #2
Membre du Club
 
Inscription : mars 2003
Messages : 170
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2003
Messages : 170
Points : 63
Points : 63
Envoyer un message via MSN à tazamorte
Personnellement dans ExporterFrmEtModules()

Code :
1
2
3
4
5
6
7
 
Dim strPath As String
 
strPath = "D:\MesMacros\"
If (RépertoireExiste(strPath) <> True) Then
            MkDir strPath
        End If
et
Code :
1
2
3
4
5
6
7
8
9
10
 
'-------------------------------------------------------
'Test L'existance d'un répertoire
'-------------------------------------------------------
Function RépertoireExiste(Chemin As String) As Boolean
 
    On Error Resume Next
        RépertoireExiste = GetAttr(Chemin) And vbDirectory
 
End Function
pour que cela soit un peu plus propre et éviter des erreurs betes et idem pour feuilles bien sur
__________________
tazamorte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2007, 12h23   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu as raison, surtout pour ceux... qui ne savent jamais où ils ont rangé leurs affaires

Quelques liens utiles
Lien pour insérer du code dans une macro existante
Lien pour supprimer tous les modules d'un classeur
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 14h57   #4
Membre Expert
 
Avatar de illight
 
Inscription : septembre 2005
Messages : 1 016
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : septembre 2005
Messages : 1 016
Points : 1 044
Points : 1 044
Ton premier lien ne marche plus Ousk
__________________
Avant de poster, et http://www.developpez.com/sources/

N'oubliez pas le

Vous une brute ? faites voir
illight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2008, 17h39   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Citation:
Envoyé par illight Voir le message
Ton premier lien ne marche plus Ousk
C'est bien dommage !
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2008, 18h21   #6
Membre émérite
 
Avatar de fred65200
 
Inscription : septembre 2007
Messages : 901
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : septembre 2007
Messages : 901
Points : 994
Points : 994
bonjour à tous,
sur le même sujet

http://www.developpez.net/forums/sho...d.php?t=462051

cordialement
__________________
fred65200
Pensez à cliquer sur
fred65200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h08.


 
 
 
 
Partenaires

Hébergement Web