Exporter variables excel vers un word bizare

  • Initiateur de la discussion Initiateur de la discussion Carnage029
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Carnage029

XLDnaute Occasionnel
Bonjour à tous,

Content de trouver de nombreuses réponses sur ce forum, je récidive en exposant mes petits problèmes.

Un fournisseur nous demande de remplir un document (word) et de lui renvoyé rempli, hors j'aimerai automatiser la saisie dans ce document car toutes les informations viennent d'un fichier excel...


Vu que les fichiers contiennent des informations confidentielles, je les ai "épurés" et modifié le plus possible sans altéré les informations dont on pourrait avoir besoin...

J'ai mis dans le word toutes les informations à remplir en rouge...

Attention pour les dates, elles sont lues par des têtes de lecture et doivent entrer exactement dans l'espace reservé.

Merci encore et toujours 😀

N'hésitez pas à me poser des questions 🙂
 

Pièces jointes

Re : Exporter variables excel vers un word bizare

pas tout ce qu'il faut sous la main je ne peut que visionner mais c'est l'objet de mon stage donc pour te mettre sur la piste:
ALT + F11 : Outil => référence => Cocher le module Microsoft Word xx.xx Object Library

Ensuite voici la mainière de procédé:
Je rajouterai une case à ton tableau pour faire D9 - D10, exemple case en H1
Déclaration des variables:
Code:
Dim date_t, date_t1, E16, D13, D14, D10, H1
Dim objWord As Word.Application
Dim docWord As Word.Document
Dim docWordF As Word.Document

Je récupère les infos de la feuille:
Code:
Sub RecupInfos()
with sheet("Feuil1")
date_t = .Range("C13").Value
date_t1 = .Range("C14").Value
E16 = date_t1 = .Range("C14").Value
D13 = .Range("D13").Value
D14 = .Range("D14").Value
D10 = .Range("D10").Value
D11 = .Range("H1").Value 'Ne pas oubliez, H1 est la somme D9-D10
End with
End Sub

Ensuite j'envoie le tout sur mon word:
Code:
Sub WriteDoc()

Call RecupInfos
    
    Dim Fichier As String

    FileModel = Dir(ThisWorkbook.Path & "\leword.doc")
    If FileModel = "" Then
        MsgBox "Le document modèle leword.doc' n'existe pas !", vbCritical
        End
    End If
    
    
    Set objWord = CreateObject("Word.Application")
    Set docWord = objWord.Documents.Open(ThisWorkbook.Path & "\leword.doc")
    objWord.Visible = False

'--- Remplacement de la date (fait copier coller et fait de la même méthode avec tout le reste)
    objWord.Selection.Find.ClearFormatting
    objWord.Selection.Find.Replacement.ClearFormatting
    With objWord.Selection.Find
        .Text = "//DATE T1//"       'Il va rechercher //DATE T1// dans ton doc et le remplacer par (ligne suivante) date_t1
        .Replacement.Text = date_t1  'que tu as au préalable récupérer dans le excel.
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    objWord.Selection.Find.Execute Replace:=wdReplaceAll
End sub
'-----Fin du remplacement de //DATE T1// par date_t1

    objWord.ActiveWindow.ActivePane.Close
    If objWord.ActiveWindow.View.SplitSpecial = wdPaneNone Then
        objWord.ActiveWindow.ActivePane.View.Type = wdPrintView
    Else
        objWord.ActiveWindow.View.Type = wdPrintView
    End If

Il va s'en dire que tu doit mettre dans ton .doc de base le text a recherche et remplace le ".replacement.Text = date_t1" par les valeurs qui t'interesse et que tu as défini dans tes variables.


PS: j'ai tout fait de tête il est donc possible qu'il y ai des erreurs/oublies mais je crois que tout est la 🙂
Bonne chance 🙂
 
Dernière édition:
Re : Exporter variables excel vers un word bizare

mais cette méthode remplace dans le word nan ? en fait il faut que la mise en page soit exactement la même 🙁

Ce que je souhaite avoir en fait c'est un bouton dans mon excel sur lequel je clique, qui me lance une macro qui me génère le document word rempli avec les infos voulues...

Après j'avais pensé à importer un word dans une feuille excel pour le remplir puis l'exporter en pdf mais je n'arrive pas à importer avec exactement la même mise en page le word 🙁

merci 😀
 
Re : Exporter variables excel vers un word bizare

La méthode que je t'ai donné ce sert d'un word que tu a déja créer (leword.doc par exemple) dans lesquelle aux endroit dont tu as besoin des informations tu met //nom_information// puis le remplace par le nom_information qui est récupérer de ton excel.

En gros c'est comme ci tu utiliser la fonction pour rechercher //nom_information// et remplacer par nom_information


Exemple dans ton word:
//DATE T1//
bonjour les z'amis vous me devez //Sommes du// €

Si dans ton fichier excel tu as: date_t1 = range("B1").Value et somme_du = Range("B2").Value
et qu'ne B1 tu as: 12/10/90 et qu'ne B2 tu as 1234

Alors ta macro va lancer la recherche dans ton word de //DATE T1//, le remplacer par 12/10/90 et le //Sommes du// par 1234
Ce qui te donnera:
12/10/90
bonjour les z'amis vous me devez 1234 €


Edit: Dans ton word, la date en rouge doit être remplacer ou c'est la ou il y à les trait __\__\__ que sa doit être remplacé?
 
Dernière édition:
Re : Exporter variables excel vers un word bizare

Oui, ça j'ai compris, mais le word d'origine à un format vraiment bizare, ce n'est pas vraiment un tableau, l'endrot ou mettre les dates est "chelou" enfin, ce n'est pas moi qui l'ai crée... Au début, je cherchais à mettre des zone de textes à remplir automatiquement, mais je ne sais pas trop si c'est possible...

je comprend bien ce que tu veux me dire, mais je ne peux pas me permettre d'écrire datet1 dans le word, parcque ça ne prend pas le format qu'il faut ? Comprend tu mon soucis ou alors je m'exprime vraiment comme une chèvre ? 🙂


Edit de réponse à to nedit : Oui ça doit aparaitre pile poil dans les __/__/__ en fait je pense que le plus simple soit d'utiliser le word comme une image "fixe" et faire aparaitre des "box" avec pile à l'endroit ou je veux ma date séparée en jj puis mm puis aaaa et ainsi de suite pour tous les champs du word :s
 
Dernière édition:
Re : Exporter variables excel vers un word bizare

Oui je pense comprendre, pour le moment je n'ai pas vraiment le temps de réfléchir dessus dans l'immediat mais je vais essayer de voir ça. Je regarder le fichier et j'essairai de te faire quelques chose.

Je garantie pas le résultat par contre, je ne suis qu'un novice qui essai d'aider, mais je vais essayer ! Donc si quelqu'un a une solution ^^
 
Re : Exporter variables excel vers un word bizare

Bon j'ai réussi à répondre à mon soucis, de la manière la MOINS élégante que j'ai trouvé mais bon ça marche,

J'ai placé à la main 18 zones de texte et j'ai utilisé ça

ActiveSheet.Shapes("ZoneTexte 3").TextFrame.Characters.Text = lavariablecontenantcequ'ilfautafficher


Solution débile et méchante mais qui marche 😀
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour