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

VBA Word Discussion :

Rédaction automatique d'une macro Excel à partir d'une macro Word


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2018
    Messages : 38
    Points : 21
    Points
    21
    Par défaut Rédaction automatique d'une macro Excel à partir d'une macro Word
    Bonjour à tous,

    Je réalise une macro sur Word de publiposage, dont le fonctionnement implique d'appeler une macro Excel su le document source. Or ce document source change régulièrement, et je veux pouvoir appeler la macro Excel sur n'importe quel fichier. Je cherche donc à trouver un code qui permettrait à ma macro Word de rédiger le code sur Excel (par exemple via un copier-coller), afin de l'exécuter par la suite.

    Pour l'instant, mon code Excel et mon code Word fonctionnent tout les deux. Je cherche seulement à réaliser automatiquement une copie de mon programme Excel depuis la macro Word.


    Pour l'instant ma macro principale ressemble à :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub MainMacro()
     
    'Des notes de modifications du programme se trouvent en bas de cette feuille
        AdresseBureau = ObtenirCheminBureau 'Enregistre l'adresse du bureau de l'odianteur sur lequel est effectuée la macro. Utile pour la suite
        Adresse = ShowFileDialog() 'Sélecionne le fichier excel source via une boite de dialogue
        Adresse2 = AdresseBureau & "\DossierPublipostage" 'Stocke l'adressed'un fichier (qui n'est pas encore créé, qui permet de stocker proprement les fichiers utiles à l'exécution du programme
        'MsgBox (Adresse)
     
        Call MacroExcel(Adresse) 'Appelle la macro excel
     
     
        Call Format 'Crée une nouvelle feuille vierge de publipostage
        Call DocSource1(Adresse2) 'Active le document source France5Calendriers(créé par l'execution de MacroExcel, et stocké sur le bureau), afin d'entamer l'opération
        Call Etiquette1Fr 'Rédige la première étiquette
        Call Etiquettes24Fr 'Rédige la première feuille
        Call SaveEtiquettes(Adresse2) 'Enregistre la première feuille dans le dossier de stockage, sur le bureau (opération nécessaire à la fermeture de la page)
        Call ToutesEtiquettes 'Automatise la rédaction des pages, jusqu'a la fin du tableau
        Application.DisplayAlerts = False 'Permet de désactiver les messages de confirmation liés à l'execution de la ligne qui suit
        Windows("Étiquettes.docx").Close 'Fermeture de la feuille rédigée par Eiquettes24
     
        Call Format
        Call DocSource2(Adresse2) 'Active le document source France50Calendriers, stocké sur le bureau
        Call Etiquette1Fr
        Call Etiquettes24Fr
        Call SaveEtiquettes(Adresse2)
        Call ToutesEtiquettes
        Application.DisplayAlerts = False
        Windows("Étiquettes.docx").Close
     
     
        'Windows("DocPublipostage.docm").Activate 'Retour à la feuille DocPublipostage
        MsgBox "L'opération de publipostage est maintenant terminée." & vbCrLf & " Durant son fonctionnement, un dossier a été créé sur votre bureau." & vbCrLf & " Il contient toutes les informations nécéssaires. Il peut être supprimé sans problème", , "Rapport de Travail"
     
    End Sub
    et je souhaite donc appeler une macro avant MacroExcel qui permettrait de rédiger la macro.

    Si quelqu'un a une idée, je lui en serais reconnaissant.

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    c'est illogique et voire même dangereux côté sécurité !
    Simplement piloter Excel via le VBA de Word, pas besoin de code côté Excel.

    Et pour un vrai publipostage, rappel parmi les tutoriels pourtant à disposition :  Fusion et Publipostage, par l'interface et en VBA

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2018
    Messages : 38
    Points : 21
    Points
    21
    Par défaut
    Je ne sais pas pourquoi tant d'agressivité...
    Bon, soit ! Si on ne peut pas, je ne vais pas le faire.

    Merci quand même

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Aucune agressivité pour celui sachant lire car je n'ai jamais écrit que cela n'était pas possible … 
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2018
    Messages : 38
    Points : 21
    Points
    21
    Par défaut
    Non c'est certain, aucune agressivité

    est ce que tu sais comment je peux faire ?

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Même si un stagiaire s'en sortait chez lui, dans le milieu professionnel dans lequel il effectue son stage
    son projet serait refusé (ou pas exploitable) juste pour une simple question de sécurité !

    Au lieu de partir dans un tel travers voire même une usine à gaz surtout pour un débutant,
    dans le cadre de l'utilisation de Word pour un simple publipostage il est bien plus simple de piloter Excel
    depuis Word (si vraiment besoin car avec un classeur bien conçu le pilotage est inutile, cf tutoriel)
    sans modifier l'intégrité d'aucun classeur Excel en y incorporant du code (et inutile qui plus est !)
    laissant la porte ouverte à d'éventuels virus / malwares !

    Si t'indiquer la lecture d'un tutoriel est pour toi de l'agressivité, évite alors les forums !
    Ne pas abonder dans ton sens n'a aucun rapport avec la définition d'agressivité …

    Si tu veux continuer dans ta voie, chercher alors dans les tutoriels et les discussions des deux forums
    mais sans moi d'abord vu ta réaction et aussi de mon point de vue car, une fois prévenu,
    ce serait faire preuve d'inconscience et voire même d'idiotie !

    Sans agressivité aucune …

    ___________________________________________________________________________________________________________
    Deux choses sont infinies : l’Univers et la bêtise humaine.
    Mais en ce qui concerne l’Univers, je n’en ai pas encore acquis la certitude absolue ! (Albert Einstein)
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2018
    Messages : 38
    Points : 21
    Points
    21
    Par défaut
    Merci pour ta réponse, et pour tes explications

    Sache seulement que je ne suis, bien évidemment pas ici ni pour me faire agresser, ni pour agresser qui que ce soit, je suis seulement à la recherche de réponse. Je suis effectivement en stage, et cette macro est pour mon entreprise ; la complexité de ma macro n'est donc pas de mon initiative. Je n’étais pas au courant que ma demande posait un problème de sécurité informatique, je suis heureux de l'apprendre, mais je ne te cache pas que j'aurais aimé l'apprendre, sans qu'on m'explique que mon raisonnement était illogique, et que je ne savais pas lire. Je précise que ce n'est pas le fait de me diriger vers un tuto qui m'a gêné.


    Merci en tout cas pour ta réponse, je ne ferai pas l'erreur d’écrire ce programme si c'est dangereux

    Cordialement,

    Gaspard

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Illogique (encore une fois en italique, hein ! Aucune agression, et ne pas déformer les propos … ) dans le sens
    pourquoi bidouiller dans Excel alors que tout est déjà réalisable dans Word ?   Oui en fait, mais pourquoi donc ?

    Un peu comme du cinquième étage prendre l'ascenseur pour descendre au rez de chaussée
    puis monter l'escalier jusqu'au douzième étage !

    S'il s'agit en fait juste d'un publipostage, fait-il encore rappeler qu'ici on s'en tient aux explications
    et qu'on ne cherche en rien à deviner les non dits …

    Serait-ce seulement te rendre service en abondant dans ton sens avec un langage de bobo
    pour qu'au final tu te ramasses, répandes, gamelles ?!

    Voir déjà avec le responsable informatique (de la sécurité) de l'entreprise s'ils ont déjà réalisé ce genre de projet,
    alors ils savent déjà ce à quoi ils s'exposent, sinon sont-ils d'accord pour abaisser le niveau de sécurité d'Excel,
    et dans ce cas, tu as déjà tout le nécessaire dans les tutoriels et les discussions du forum Excel.

    Et si tu préfères bidouiller depuis Excel, il y a aussi un tutoriel à disposition dans le forum Excel
    pour le publipostage vers Word depuis Excel …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2018
    Messages : 38
    Points : 21
    Points
    21
    Par défaut
    En fait j'ai besoin de cette macro Excel parce que mon publipostage se fait sur une liste des clients de la société dans laquelle je bosse dont certain sont étranger, et certains ne reçoivent pas le même courrier que les autres.
    Donc j'ai fait une macro qui me permet de trier ce tableau, afin d'exécuter la macro Word sur chacun des cas. Dans les deux cas on a des macros assez velues.

    Comme je suis dans une société de petite taille, je n'ai pas d'expert en VBA à qui je pourrai demander conseil. Ca veut dire aussi que mon programme doit marcher à tous les coups.

    Or ce programme s'exécute sur un fichier Excel qui change tous les ans, parce que on a des client qui arrivent et des clients qui partent chaque année. Donc chaque année, un nouveau dossier Excel est édité.

    Donc je cherche à faire en sorte que ce programme soit aussi simple que possible à l'utilisation. Dans le cas présent un code qui permet de réécrire le code dans le fichier Excel. Ca évite, par exemple de copier le code dans le mauvais module, ou de mal le copier...

    Cordialement,

    Gaspard Barrier

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Un code bien conçu n'a aucunement besoin d'être réécrit !   Juste en effectuant le distinguo entre le fixe et le variable …
    Dans un tel cas, la conception est à revoir, donc direction vers le sous-forum Conception du forum Excel
    ou encore le forum VBA Excel.

    Ne pas oublier non plus le classeur modèle sous Excel, sans donnée mais incorporant déjà le code (si bien conçu).
    Donc chaque année, on part juste du classeur modèle pour démarrer le nouveau fichier.

    Dans le cadre d'un simple publipostage, Word sait accéder aux données d'Excel tout comme
    Excel sait utiliser Word à des fins de publipostage et chacun sans devoir créer ni modifier un code dans un fichier de l'autre.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

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

Discussions similaires

  1. VBA : Appel d'une macro excel à partir d'une macro sur word
    Par GaspardBarrier dans le forum VBA Word
    Réponses: 2
    Dernier message: 25/01/2018, 15h02
  2. Réponses: 68
    Dernier message: 06/04/2016, 16h22
  3. [Débutant] checker une checkbox a partir d'une cellule excel
    Par Attila54 dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/05/2012, 13h12
  4. insertion dans une table excel à partir d'une requête access ?
    Par cameleon1881 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/04/2009, 17h57
  5. Réponses: 27
    Dernier message: 16/12/2008, 11h39

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