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 :

créer procédure sub dans un autre fichier


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Points : 172
    Points
    172
    Par défaut créer procédure sub dans un autre fichier
    Bonjour à tous.

    Est-il possible qu'à partir d'un code vba dans mon fichier "MAJ" je puisse aller créer un procédure Sub dans un module du fichier Toto.xls et de lancer cette procédure avant de le fichier "MAJ" soit fermé?

    Merci encore une fois à l'avance

    Dlight

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Pour créer une procédure, tu dois la placer dans un module du projet VB du classeur, ou créer un module. Par exemple :
    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 CreerProcedure()
     
    Dim sCode As String
    Dim Chemin As String
    Dim Fichier As String
    Dim Wk As Workbook
     
    'Création du code, ligne par ligne
    sCode = "Sub subMaProcedure()" & vbCrLf
    sCode = sCode & "..." & vbCrLf
    sCode = sCode & "End Sub"
     
    'ouverture du nouveau classeur
    Chemin = "C:\...\"
    Fichier = "MonAutreClasseur.xls"
    'Ouverture du fichier
    Set Wk = Workbooks.Open(Chemin & Fichier)
     
    'Ajout d'un module standard
    With Wk.VBProject.VBComponents.Add(vbext_ct_StdModule)
            'Insertion du code dans le nouveau module
            .CodeModule.AddFromString Code
    End With
    End Sub
    C'est juste un exemple de principe.

    Ensuite pour l'exécuter, c'est la méthode Application.Run.

    Cordialement,

    PGZ

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Points : 172
    Points
    172
    Par défaut Re
    Merci à vous pgz pour le code mais le code bloque avec l'erreur 440 à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Wk.VBProject.VBComponents.Add(vbext_ct_StdModule)
    Avez-vous idée de ce qui cloche ?

    Dlight

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    T'es-tu assuré que l'accès au projet VBA par code est autorisé (dans les options de sécurité des macros?)

    Cordialement,

    PGZ

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Points : 172
    Points
    172
    Par défaut Re
    Merci de prendre le temps de me répondre.

    Au niveau de la sécurité des macro, je suis à l'option de sécurité moyenne. J'ai essayé à faible mais j'ai le même résultat.

    Dlight

  6. #6
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Re,

    Nous ne parlons pas de la même chose :
    Office 2003 et Office XP
    Ouvrez l'application Office 2003 ou Office XP en question. Dans le menu Outils, cliquez sur macro, puis cliquez sur sécurité pour ouvrir la boîte de dialogue de Sécurité des macros.
    Sous l'onglet Sources fiables, cliquez pour sélectionner la case à cocher faire confiance au projet Visual Basic pour activer l'accès.
    Cliquez sur OK pour appliquer le paramètre. Vous devrez peut-être redémarrer l'application pour que le code de s'exécuter correctement si vous automatisez à partir d'un COM (Component Object Model) complément ou un modèle.
    PGZ

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Points : 172
    Points
    172
    Par défaut Re
    Merci pour votre réponse mais ça ne change rien.

    La case "faire confiance..." était déjà coché


    Dlight

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Tu peux t'inspirer de ce tuto

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Points : 172
    Points
    172
    Par défaut Re
    Merci Fring pour la référence.

    Je vais lire ça durant mon congé...

    Dlight

Discussions similaires

  1. [XL-2007] Créer une liste de validation à partir de données contenues dans un autre fichier
    Par familledacp dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/10/2011, 18h03
  2. Récuperer Id dans un autre fichier
    Par Invité dans le forum Langage
    Réponses: 22
    Dernier message: 05/03/2006, 17h13
  3. Shell - Récupérer une variable dans un autre fichier
    Par claralavraie dans le forum Linux
    Réponses: 9
    Dernier message: 11/01/2006, 16h25
  4. menu dans un autre fichier
    Par florantine dans le forum Composants
    Réponses: 16
    Dernier message: 11/12/2005, 21h28
  5. Importer le contenu un fichier xml dans un autre fichier xml
    Par gedeon555 dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/07/2005, 11h49

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