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 :

Effectuer une macro et automatiser sur un ficher word


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Effectuer une macro et automatiser sur un ficher word
    Bonjour, Bonsoir à tous.

    Je dois automatiser le remplissage d'une convention/contrat à partir d'excel que je bascule sur Word. J'ai déjà effectuer plusieurs macros & Interface sur Excel mais je n'ai jamais touche à VBA sur Word...
    J'ai donc créer une interface directement sur Excel (ce qui me semblait le plus pertinent), mais je ne sais pas comment faire passer les informations (nom, adresse etc) écrites sur Excel dans mon fichier WORD (et surtout au bon endroit)

    En clair, le but est de créer une macro qui complétera ensuite la convention d'étude automatiquement.
    J'ai mis en pièce jointe le début de mon interface que je dois terminer mais si je ne sais pas comment automatiser directement sur Word je vais me retrouver bloquer...
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    La méthode la plus pratique que j'ai trouvé est d'utiliser des Signets (Bookmark).

    A l'endroit que tu veux remplacer, tu mets un texte particulier comme par exemple Marque1, de préférence d'une taille qui corresponde à peu près au texte qui doit le remplacer histoire de faciliter la mise en page.
    Tu sélectionnes toute cette portion de texte > Ruban Insertion > Icone Signet
    Tu donnes au signet le nom correspondant à cette portion de texte (c'est plus facile à gérer s'il y en a plusieurs).

    Ensuite, en VBA, tu peux transférer le contenu d'une cellule sur ce signet avec une instruction comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WD_Dest.Bookmarks("Marque1").Range.Text = Workbooks("ClasseurSource").Worksheets("FeuilleSource").Range("A1").Text
    Dans lequel WD_Dest référence le document Word de destination.

    Bien sûr, il y a des dizaines d'autres méthodes comme passer par un simple remplacement : https://docs.microsoft.com/fr-fr/off...rd.replacement
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci pour ton aide Menhir, je vauis essayer ce soir en rentrant du boulot.
    Concernant la fin, si j'ai bien compris, je dois nommer mon doc Word "WD_Dest" ?

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Adyl2019 Voir le message
    Concernant la fin, si j'ai bien compris, je dois nommer mon doc Word "WD_Dest" ?
    Non.
    C'est un nom de variable. Tu peux choisir n'importe lequel.

    Lorsque tu ouvres ton fichier Word avec VBA, tu places la référence dans une variable de type Word.Document que tu peux appeler, par exemple, WD_Dest ou n'importe quel autre nom qui te conviendra.

    Par exemple pour ouvrir un document Word :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim WD_Dest As Word.Document
    Set WD_Dest = GetObject("C:\chemin\MonDoc.doc")
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci pour tes infos, je n'ai pas réussi malheureusement... Je dois bien mettre le codage ci dessous sur WORD ?

    J'ai mis ça sur ma macro mais ça ne marche pas. Mon classeur sur Excel se nom evalSJC et il faut transférer la cellule B1 au signet que j'ai nommé Cenum.
    Lorsque je lance la macro ça me surligne Workbook et ça me dit Sub ou Function non défini. Ça me fait pareil si je mets au préalable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim Wbd as Workbook
    Set WbD = Workbooks("evalSJC")
     
     
    Sub Automatisation()
     
    Dim WD_Dest As Word.Document
    WD_Dest.Bookmarks("Cenum").Range.Text = Workbook("evalSJC").Worksheets("Feuil2").Range("b1").Text
     
    End Sub
    Merci par avance de ton aide

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 767
    Points : 28 626
    Points
    28 626
    Billets dans le blog
    53
    Par défaut
    Bonjour;
    je ne peux qu'approuver la réponse de Menhir , que je salue au passage. La meilleure façon de copier des données de'Excel vers Word est l'utilisation des signets.

    Voir discussions sur le même sujet
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci pour votre aide, j'ai utilisé la méthode de Menhir mais un message d'erreur s'affiche
    Type défini par l'utilisateur non défini.

    Je ne sais pas d'où cela peut provenir...
    Merci pour votre patience et votre aide;
    Images attachées Images attachées  

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Lorsque je lance la macro ça me surligne Workbook et ça me dit Sub ou Function non défini.
    Workbook accompagné d'un index doit prendre un "s" final.
    L'index indique un élément de la collection Workbooks.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Wbd as Workbook
    Set WbD = Workbooks("evalSJC")
    Ceci n'a aucune signification en dehors d'un module Sub ou Function.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Automatisation()
     
    Dim WD_Dest As Word.Document
    WD_Dest.Bookmarks("Cenum").Range.Text = Workbook("evalSJC").Worksheets("Feuil2").Range("b1").Text
     
    End Sub
    WD_Dest ne peut pas être utilisé puisque tu ne la renseignes pas.


    Citation Envoyé par Adyl2019 Voir le message
    Merci pour votre aide, j'ai utilisé la méthode de Menhir mais un message d'erreur s'affiche
    Type défini par l'utilisateur non défini.
    Est-ce que tu as chargé la bibliothèque d'objets Word ?
    Menu Outils > Références > Cocher la bibliothèque Microsoft Word Object Library.

    Sincèrement, avant d'essayer de batir une application, je pense que tu devrais apprendre les bases : http://bidou.developpez.com/article/VBA/
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    J'avais mal retranscris sur ma réponse mais il était evidemment dans ma Sub

    Cela faisait 6 mois que je n'avais pas codé j'ai du me mettre un petit coup de refresh en effet...

    Je suis malheureusement toujours bloqué mais maintenant pour trouver mon chemin.., j'essaye Ce2018, Ce2018.docx etc mais rien y fait ca ne reconnaot pas mon chemin et le document Word que je veux modifier...

    Nom : Capture.JPG
Affichages : 826
Taille : 18,9 KoNom : Capture2.JPG
Affichages : 852
Taille : 29,4 Ko

    Merci encore pour votre patience

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    J'ai finalement trouvé merci pour votre aide qui m'a grandement aidé.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/06/2009, 10h12
  2. [MySQL] effectuer une conditionnelle de vérification sur une valeur issue d'un formulaire
    Par ben.IT dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 17/02/2009, 15h40
  3. Réponses: 3
    Dernier message: 04/01/2009, 21h57
  4. lancer une macro en cliquant sur un texte
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/05/2008, 13h18
  5. [VBA] utilisation d'une macro excel 2003 sur excel 2004 for mac
    Par fofika dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2007, 15h30

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