Export EXECEL vers Doc WORD existant

Bonsoir à tous,

Je suis sur une partie compliquée d'un projet pour mon entreprise : je dois créer une macro d'export entre un EXCEL (que j'ai créé) et je dois l'exporter vers un document WORD qui existe déjà dans mon entreprise et qu'il ne faut pas modifier.

Est il possible de créer de la VBA à partir des documents que je vous fourni?

Pour ma part cela fait plusieurs fois que je participe au forum depuis quelques jours et je ne trouve pas de solutions et ça me parait vraiment compliqué pour le coup.

En espérant avoir une réponse rapide de votre part.

Cordialement.

Vince

Bonjour Vinceshow,

Tu peux déjà importer un fichier Excel existant depuis Word (Insérer > Objet > Créer à partir d'un fichier). Le problème est que ton fichier Excel est énorme, dispose d'une mise en page complète (comme un document Word...). La fusion me paraît donc délicate...

Pour faire ce que tu souhaites, cela me paraît bien compliqué.

Il y a des moyens techniques pour injecter des données dans Word proprement (Compléments Word + Schéma XML), mais là, il faut plus de temps qu'un post sur un forum...

A part faire une impression PDF puis à importer ensuite dans Word (Word sait ouvrir les PDF) les pages une par une...

Bonne chance !

Salut et merci pour ta réponse

Est ce possible si le fichier est simplifié?

Comment est ce possible autrement? (Est ce qu'il y a une solution)?

Bonjour à tous,

En passant par du code, plusieurs méthodes sont possibles (avec les fichiers en l'état).

Veux-tu qu'on te propose du code?

Pierre

Bien sûr! Si c'est possible je suis preneur si c'est faisable

Ok, voici donc un début :

Alors c'est simple : dans ton fichier Excel j'ai ajouté une feuille 'Codage' avec 2 colonnes :

* en A => les mots surlignés du doc

* en B => les valeurs à coller à la place (ces valeurs peuvent être des formules simples pointant vers la bonne case de la feuille ANALYSE ou des données en dur)

+ un bouton pour lancer le code d'export. Ce code :

* demande à pointer sur un doc modèle

* cherche les mots (de la colonne A)

* les remplace (par ceux de la colonne B)

* enregistre le nouveau doc (Prj+horodatage) dans le dossier courant

Il reste donc à compléter la liste de mots à remplacer. Dans l'exemple joint seuls les 4 premiers sont indiqués (et pour cette démo, j'ai supprimé les images qui prenaient trop de place)

Pierre

Pour poursuivre, le code complété suivant exécute 2 actions supplémentaires :

* ôte le surlignage après remplacement du mot

* insère une image si le mot à coller se finit par .jpg (l'image se trouvant dans le répertoire du fichier excel, mais on peut adapter si besoin)

    For i = 1 To UBound(T, 1)
        If Not T(i, 2) = 0 Then
            Cherche_doc = "Non trouvé"
            With WordDoc.Content.Find
                .Highlight = True
                .Text = T(i, 1)
                .Execute
                If .Found Then
                    .Parent.Select
                    With WordApp.Selection
                        If Right(T(i, 2), 3) = "jpg" Then
                            Fimg = ThisWorkbook.Path & "\" & T(i, 2)
                            With .InlineShapes.AddPicture(Fimg, False, True)
                                .ScaleHeight = 50
                                .ScaleWidth = 50
                            End With
                        Else
                            .Text = T(i, 2)
                            .Range.HighlightColorIndex = wdNoHighlight
                        End If
                        Cherche_doc = "ok"
                    End With
                End If
            End With
        End If
    Next i

Pour continuer à jouer, voici une autre version avec quelques améliorations de code (gestion des erreurs par exemple) + import des zones de texte surlignées (pour les lister en colonne A) + formule "Indirect" pour récupérer le contenu des cellules concernées de l'autre onglet.

Dans l'import, il y a quelques défauts (données en double), mais je me demande si ce n'est pas dû à la structure du doc (?). Ceci dit il suffit de dédoublonner la colonne après import.

Pierre

Salut Pierre!

Merci pour ton travail qui est impressionnant !!

J'ai regardé dans les grandes lignes ce que tu as fait et j'en suis franchement incapable...

J'ai simplifié et modifié dans mon document EXCEL des cellules pour simplifier la lecture ou modifier l'exportation.

J'ai retravaillé l'onglet codage. et du coup il y a deux ou trois trucs qui ne fonctionnent plus (peut être à cause de moi) :

  • L'insertion du "Rédacteur" ne fonctionne plus
  • chapitre 2.1 : le WORD me fait une pagination à chaque retour de ligne
  • chapitre 2.2 : le WORD ne me met pas toutes les cellules voulues
  • chapitre 2.4 : le WORD ne me mets pas les insertions EXCEL à la ligne dans WORD
  • Tout le chapitre 3 : le WORD ne me mets pas les insertions EXCEL à la ligne dans WORD
  • chapitre 3.10 : est il possible d'aller à la ligne pour l'insertion?
  • chapitre 3.11 : est il possible d'aller à la ligne pour l'insertion?
  • chapitre 4.1 : est il possible d'aller à la ligne pour l'insertion?

Comment peut on faire pour que cela fonctionne?

Est ce possible d'importer la même information vers plusieurs documents (tu trouveras le nouveau document et je te mets dans l'onglet codage les cellules voulues).

Je te remercie pour ton savoir et ton implication.

Tu trouveras ci-joint mon fichier EXCEL ainsi que les WORD.

Cordialement,

Vincent

Ok c'est cool,

Pour exporter sur plusieurs docs, il vaut mieux scinder l'onglet de codage en 2 (voir exemple joint) pour avoir 2 tableaux bien distincts (c'est toujours plus facile à coder)

* Insertion du rédacteur => de façon générale le mot à trouver de la colonne A doit se trouver dans le doc. C'est trivial, mais on se fait tous avoir sur ce type de détail. Donc pour le rédacteur, soit on se cale sur le mot "Rédacteur", soit sur "E164" ...

* retour de ligne du 2.1 => ce sont les retours de lignes des données excel qui se transforment automatiquement en 'nouveau paragraphe' (avec renumérotation). La parade est simple, mais subtile : on transforme à la volée ces retours lignes en 'passage à la ligne' (équivalent du Maj+Entrée sur word, en langage vba on substitue les Chr(10) par des chr(11))

* chapitre 2.2 et 2.4 : si ces chapitres comprennent plusieurs entrée (ex 2.2 = F265 ET F269, le plus simple est de modifier l'entrée dans word, par exemple pour le 2.2 :

F265 +retour ligne (Maj+Entrée)+ F269 (voir doc modifié)

=> de façon générale les ';' entre les mots clés du doc sont à remplacer par des passage à la ligne (Maj+Entrée) ça devrait résoudre les questions sur les points suivants.

NB : dans word, pour visualiser la différence entre un passage à la ligne simple (petite flèche) et un retour ligne (marque de paragraphe), il suffit de cliquer sur l'icône du menu 'Accueil' (voir image)

dq65

Rq : dans le doc 'Pouvoir' le mot clé dans une zone de texte sur-ajouté n'est pas reconnu par le code. En revanche, on peut formater les tableaux pour obtenir un visuel similaire pour que l'info soit correctement lue.

Ci-joint les 3 fichiers modifiés (et fonctionnels, il me semble)

Pierre

Salut Pierre!

Merci pour ton retour

Ça fonctionne bien, même très bien!

Sauf pour l'article 3.9. qui n'affiche pas les résultats alors que ça marche sur le même principe...Si tu arrives à trouver....

Ci-joint mon EXCEL les feuilles comme d'hab et l'exemple ou il y a l'erreur.

Toujours même principe, les mots clés dans word doivent être les mêmes que ceux de la liste dans Excel ...

Vérifie encore ...

Ah ouais non autant pour moi je pensais que j'étais sur les bonnes cellules... comme passer pour un idiot

Merci bien!!!

Rechercher des sujets similaires à "export execel doc word existant"