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 dans des fichiers/dossiers variables des modules et des userforms


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 10
    Par défaut Importer dans des fichiers/dossiers variables des modules et des userforms
    Bonjour,

    Pour mon stage, j'ai besoin de mettre des macros et des userforms dans des fichiers (qui ne sont en plus pas au format avec macro (sic)) avec une architecture de dossiers régulières.

    Par exemple,
    Dossier Atelier1 => MachineA =>Fichier1 (le 1er fichier du dossier)
    Dossier Atelier1 => MachineA =>Fichier2

    Dossier Atelier1 => MachineB =>Fichier1 (le 1er fichier du dossier)
    Dossier Atelier1 => MachineB =>Fichier2

    Dossier Atelier2 => MachineA =>Fichier1 (le 1er fichier du dossier)
    Dossier Atelier2 => MachineA =>Fichier2

    Est-ce que c'est possible d'importer pour chacun de ces fichiers mes userform (stockés dans mes documents), des modules et des macros dans ThisWorkbook ? Le module doit pouvoir être stocké dans MesDocuments, ainsi que les userform mais pour le code dans ThisWorkbook ?

    Je pensais essayer de faire des chemins variables

    Ex :

    While tous les dossiers ont été ouverts
    j=0
    CheminMachine="C/:Atelier1"&Machine(j)
    i=0
    While CheminMachine(j)<>vide
    While fichier(i)<>vide
    cheminFichier = "C/:Atelier1"&Machine(j)&Fichier(i)
    Ouverture et importation de tout le code dans chaque fichier
    Enregistrement du nouveau fichier en format excel avec macro
    Quand la machineA est finie, on passe à la machineB
    Quand l'atelier1 est fini, on passe à l'atelier2 avec la machineA jusqu'à ce qu'on ai tout fait !
    Wend
    Wend
    Wend

    Ma question, est-ce que c'est possible ??

    Je vous devrais une fière chandelle si ça marche ! Car ça m'épargnerai de longues heures de travail !

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Pour ce genre de manipulation, tu devras t'intéresser à VBE
    Tu dois créer une référence à: Microsoft Visual Basic for Application Extensibility X.X

    Un exemple pour importer un Userform ou un Module dans le fichier qui contient cette macro.
    Changer ThisWorkbook pour une variable pointant sur le fichier nécessaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim VBProj As VBIDE.VBProject
     
        Set VBProj = ThisWorkbook.VBProject
        VBProj.VBComponents.Import "Chemin et nom du fichier .frm"
     
        Set VBProj = Nothing
    Un exemple pour ajouter du code à un nouveau fichier dans ThisWorkbook
    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
    Sub CreerFichierEtModule()
        Dim Wb As Workbook
        Dim strTemp As String
        'Dim VBCmp As VBComponent  'exemple de variables objets qu'on peut utiliser
        'Dim cdMod As CodeModule
     
        strTemp = "Private Sub Workbook_Open()" & vbCrLf
        strTemp = strTemp & "Application.Calculation = xlCalculationAutomatic" & vbCrLf
        strTemp = strTemp & "End Sub"
     
        Set Wb = Workbooks.Add
        Wb.VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromString strTemp
     
        Wb.SaveAs "C:\Test.xlsm", xlOpenXMLWorkbookMacroEnabled
        Wb.Close False
     
        Set Wb = Nothing
    End Sub

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/10/2014, 17h27
  2. Réponses: 10
    Dernier message: 05/10/2014, 14h11
  3. [Débutant] Récupérer la taille des fichiers/dossiers dans une même variable
    Par Bylliboy dans le forum VB.NET
    Réponses: 11
    Dernier message: 18/06/2014, 12h50
  4. [XL-2003] liste des fichier importé dans le fichier excel
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/05/2010, 01h26
  5. [DTD] utiliser avec JAVA des fichiers DTD pour vérifier la validité des fichiers XML
    Par Balbuzard dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 20/04/2009, 12h10

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