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 :

Excel To Word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2023
    Messages : 11
    Par défaut Excel To Word
    Bonjour à tous.

    Je reviens une nouvelle fois vers vous, car après mon premier post, j'ai un peu complété mon code VBA suite aux recommandations de certain d'entre vous.
    Cependant, je suis totalement bloqué au point que je ne sais même plus quoi faire.
    Je me retourne une nouvelle fois vers vous !

    Je vous explique ce que j'essaie de réaliser.

    En gros j'ai deux choses : un tableur Excel, avec tableaux et calculs ; et un document Word, que j'aimerais me servir comme modèle.

    Je réalise des rapports. J'utilise le tableur pour réaliser les calculs et pour le moment, je copie/colle les tableaux sur Word directement. J'aimerais, à la fin de chaque rapport (qui sont diffèrent les uns des autres), envoyer directement certains tableaux à un endroit bien précis d'un modèle Word.

    Sachant que j'ai plusieurs rapports à faire, il faudrait dans l’idée qu’à chaque fois ça "utilise" le modèle Word pour en créer un nouveau, en y intégrant les tableaux sélectionnés, afin de laisser "vierge" le modèle Word, pour que je puisse le réutiliser ensuite pour un autre rapport.

    Dans l'idée, j'aimerais procéder ainsi :

    - Une fois les calculs Excel réalisés, avoir en feuille 1 une Userform qui s'active via un bouton. Dans cet Userform, avoir une liste automatique reprenant les feuilles présentent dans le classeur (avec remplissage automatique si j’ajoute une feuille).
    - Avoir avant chaque feuille une création automatique de case à cocher.

    L'objectif des case à cocher : "sélectionner" une plage de cellule précise sur cette feuille (par exemple, si je coche la feuille une, selectionner le tableau "A1:C6")
    Dans la Userform, avoir un bouton de commande qui me permet " d'exporter vers mon modèle Word" les plages sélectionnées vers leurs emplacements Word defini.




    Mise en situation :

    Je réalise mes calculs sur Excel. Je sélectionne les feuilles que je veux intégrer à mon documents Word (comme expliqué, je ne veux pas "sélectionner" l'ensemble de la feuille, mais uniquement une plage de cellule). Je clic sur le bouton de commande "export vers word" --> création d'une copie du modèle Word, et insertion des différents tableaux aux emplacements définis à l'avance sur le document Word.

    Honnêtement, je me suis lancé dans un truc plus gros que moi, mais j'aimerais réussir, et sans vous, ce m'est impossible. Je n'ai pas les connaissances nécessaires.

    Je ne sais pas si certain d’entre vous accepterons de m’aider, je comprendrais car, à titre personnel, je trouve que cela représente un travail monstre, donc je comprendrais si je n’ai pas de réponse.
    En tout état de cause, afin de vous montrer que je travail dessus et que je ne vous demande pas simplement un « travail prémâché », vous avez en pièce jointe mon travail. Je précise que je pars de zéro, sans aucune base informatique.

    Merci à vous tous, bonne année et bonne santé a vous et vos proches .
    Export vers word.xlsmVoici le modèle Word.docxExport vers word.xlsmVoici le modèle Word.docxExport vers word.xlsmVoici le modèle Word.docx

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 174
    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 : 13 174
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Personnellement pour le modèle "Word", j'utilise un document Word classique (docx) que j'ouvre comme "Modèle" ce qui offre les mêmes avantages que si l'on ouvrait un modèle (dotx) manuellement sans les inconvénients lors du sauvetage d'un modèle dans un répertoire dédié.

    Ce document, je le stocke dans un sous-répertoire que j'ai nommé "Template" et tous mes documents ont des signets qui vont servir à recevoir les cellules et plages de cellules d'exel.
    Dans Excel, les cellules sont nommées à l'aide du gestionnaire des noms.

    Pour en savoir plus voir mon billet VBA Excel - Transférer des données d'excel vers Word
    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

  3. #3
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2023
    Messages : 11
    Par défaut
    Bonjour,

    Tout d'abord, merci pour votre retour.

    J'ai essayé mais je pense que je m'y perd sur la création de dossier et sous-dossier.

    J'ai aussi un peu de mal avec "où placer" les différents codes; il y en à qui, si j'ai bien compris, je dois mettre dans un module, mais l'autre, celui qui ce nomme "exemple de procédure qui l'invoque" je ne savais pas ou le placer, je l'ai mis dans "thisWorkBook"

    En tout cas, après quelques essais, j'ai ce message d'erreur qui apparait : Erreur d'exécution '5174': Erreur définie par l'application ou par l'objet

    Je pense ( à tort peut-être) que c'est un problème lié à l'ouverture du document Word, mais je n'arrive pas à trouver l'origine du problème.

    J'ai créé sur mon bureau un Ficher nommé "Application". J'ai mis mon Tableur Excel dedans. Ensuite, j'ai créé dans ce dossier un sous-dossier nommé Template avec mon document Word (en .docx). J'ai ensuite en autre sous-dossier nommé Document.

    J'ai ensuite renseigner les différents chemins :

    Const SubFolder As String = "\Template\" ' Sous-répertoire des modèles J'ai mis --> Const SubFolder As String = "C:\Users\XXX\OneDrive\Bureau\Application\Template\"
    Const TemplateName As String = "Courrier.docx" ' Nom du modèle J'ai mis --> Const TemplateName As String = "Voici le modèle Word.docx"

    Avez vous des pistes?

    Je vous remercie, et bonne journée à vous

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 174
    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 : 13 174
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il faut mettre les procédure dans un module standard et pas dans ThisWorkbook ni dans les modules de feuilles.
    On peut avoir une ou plusieurs procédures dans un module et on peut avoir autant de procédures standard que l'on veut dans un projet.
    Il faut idéalement renommer les modules avec un nom suffisamment explicite. Un module ne peut pas avoir le même nom qu'une procédure (Sub ou Function). Personnellement, je préfixe tous mes modules par un "m" minuscule.

    Pour travailler depuis excel avec word, il faut référencer a minima la bibliothèque Word mais cela je l'explique dans mon article avec une illustration.
    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

  5. #5
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2023
    Messages : 11
    Par défaut
    Merci de votre réponse.

    J'ai transférer le code vers le module, et merci des explications.

    En revanche, j'ai toujours le même code erreur :

    "Erreur d'exécution '5174':

    Désole ... Nous n'avons pas trouve votre fichier. Peut-être l'avez-vous
    déplacé, renommé ou supprimé ?"

    Cela semble venir de cette ligne : Set oDoc = oWrd.Documents.Add(Template:=FullName, NewTemplate:=False, DocumentType:=0)

    J'ai re-verifié et la bibliothèque est bien référencée.

    Bonne journée et merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    Quelle est la valeur de FullName ? Le fichier est-il bien à cet emplacement.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. [VBA-E]Problème entre Excel et Word
    Par Ritter dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/02/2006, 19h03
  2. Réponses: 1
    Dernier message: 07/01/2006, 23h33
  3. Réponses: 5
    Dernier message: 07/01/2006, 16h55
  4. Excel dans word
    Par belgiuman dans le forum VBA Word
    Réponses: 3
    Dernier message: 11/08/2005, 13h19
  5. [VBA Excel Word]Adapter un code Excel a Word
    Par Baxter67 dans le forum VBA Word
    Réponses: 4
    Dernier message: 08/08/2005, 23h43

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