IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Importer/Exporter des macros [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut Importer/Exporter des macros
    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

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    Bonsoir,

    L'exemple proposé dans le lien suivant concerne l'import dans le module ThisWorkbook, mais tu peux l'adapter pour un module de feuille :

    Comment importer un module type cls dans un module ThisWorkbook ?


    bonne soirée
    michel

  3. #3
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Merci bien
    Je me penche la dessus demain
    Ca a l'air d'être exactement ce que je voulais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Importer/Exporter des articles dans un site wiki!
    Par OminiuS dans le forum SharePoint
    Réponses: 0
    Dernier message: 27/12/2007, 14h07
  2. Réponses: 1
    Dernier message: 29/08/2007, 10h49
  3. [C#/Excel <> SqlServer 2000] Comment importer/exporter des données ?
    Par Abydos Business Group dans le forum Accès aux données
    Réponses: 3
    Dernier message: 09/08/2006, 23h54
  4. Réponses: 6
    Dernier message: 13/02/2006, 13h13
  5. [MFC] importer/exporter des ressources
    Par r0d dans le forum MFC
    Réponses: 2
    Dernier message: 25/07/2005, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo