vba excel vers word, intégrer des données d'excel dans un document word

superbog

XLDnaute Occasionnel
Bonjour,

Voilà dans le cadre d'une association, je dois établir des certificats de formation dans word or les informations se trouvent dans un fichier excel.

Le but est de remplir le document word grace aux données qui se trouvent dans le tableau excel

J'ai essayé mais je n'arrive vraiment pas à faire le lien, c'est trop complexe pour mes compétences en vba.

Ci joint les fichiers word et excel. Dans le fichier word, j'ai surligné en jaune les données que j'aimerai importer automatiquement d'excel étant précisé qu'il y a chaque fois une bonne vingtaine de certificats à faire à la suite (là dans le fichier excel je n'en ai mis que deux, par souci de simplification).

Si quelqu'un pouvait m'aider ce serait vraiment sympa

merci d'avance
 

Pièces jointes

  • FORMATEST.xlsx
    10.4 KB · Affichages: 30
  • CERTIFICAT DE FORMATION test.docx
    20.9 KB · Affichages: 41

Lone-wolf

XLDnaute Barbatruc
Re : vba excel vers word, intégrer des données d'excel dans un document word

Bonjour superbog, Jocelyn :)

Ton fichier en retour. Je me suis permis de faire quelques modifications sur les documents, notamment sur les colonnes des heures qui bizarrement comportaient des euros?? :confused:.

Dans la macro, faudra changer For x = 1 to 5 par For x = 1 to nombre de certificats. Ne pas toucher au doument Modele.doc, qui sert justement de modèle pour la création de ceux-ci. Une fois mis le nombre de documents, clique sur le bouton et laisse faire la macro; à la fin un message te signalera que les documents ont été créés.
 

Pièces jointes

  • CERTIFICATS-FORMATION.zip
    30.1 KB · Affichages: 51
Dernière édition:

superbog

XLDnaute Occasionnel
Re : vba excel vers word, intégrer des données d'excel dans un document word

Bonjour,

Pourquoi ne pas opter pour le publipostage ? Inutile de monter une usine à gaz avec VBA !

Jocelyn

j'y ai pensé mais j'ai besoin d'enregister chaque document séparément et d'envoyer chacun par email directement via gmail (ce que je sais faire dans excel)

si tu sais comment faire ca dans word, cela m'interesse évidemment
 

superbog

XLDnaute Occasionnel
Re : vba excel vers word, intégrer des données d'excel dans un document word

Bonjour superbog, Jocelyn :)

Ton fichier en retour. Je me suis permis de faire quelques modifications sur les documents, notamment sur les colonnes des heures qui bizarrement comportaient des euros?? :confused:.

Dans la macro, faudra changer For x = 1 to 5 par For x = 1 to nombre de certificats. Ne pas toucher au doument Modele.doc, qui sert justement de modèle pour la création de ceux-ci. Une fois mis le nombre de documents, clique sur le bouton et laisse faire la macro; à la fin un message te signalera que les documents ont été créés.


une question, y a t'il un raison particulière nécessitant d'inscrire le nombre de certificats plutôt que d'utiliser for?
For i = 2 To .Range("B900").End(xlUp).Row
merci en tous cas, c'est top
 
Dernière édition:

superbog

XLDnaute Occasionnel
Re : vba excel vers word, intégrer des données d'excel dans un document word

probleme,

j'ai modifié la macro pour enregistrer en pdf et pour utiliser for et next (ci joint le fichier modifié). Ca marche MAIS il y a un probleme avec word; systématiquement il bloque indiquant que le modele.doc est déjà ouvert... pourriez vous m'aider?

Je précise que ce problème était le même avec votre ficher d'origine. Ca marche une fois et ensuite ca bloque

merci d'avance
 

Pièces jointes

  • FORMATEST2.xlsm
    24.4 KB · Affichages: 27
Dernière édition:

superbog

XLDnaute Occasionnel
Re : vba excel vers word, intégrer des données d'excel dans un document word

Bonsoir superbog,

je n'ai fait que de me baser sur ce que tu as dit au premier message "une 20aine de certificats".

absolument mais comme le nombre est variable chaque fois, cela m'obligerait à le modifier dans la macro... ou à faire un inputbox specifique (pourquoi pas) mais je n'en vois guère l'intérêt

par contre le pb avec word est recurrent, tant avec ta version que la mienne, une idée???
 

Lone-wolf

XLDnaute Barbatruc
Re : vba excel vers word, intégrer des données d'excel dans un document word

absolument mais comme le nombre est variable chaque fois

Pourquoi ne l'avoir pas dit tout de suite. Si tu commence à dire: "Et maintenant je veux si, et maintenant je veux ça", on est pas sorti de l'auberge. Le mieux dans ce cas est de créer un formulaire avec listbox, et là tu peux choisir les noms pour créer les certificats.

En attendant, voici le fichier(j'ai repris mon premier exemple) avec l'enregistrement en PDF.
 

Pièces jointes

  • FORMATEST-V3.xlsm
    23.9 KB · Affichages: 33

job75

XLDnaute Barbatruc
Re : vba excel vers word, intégrer des données d'excel dans un document word

Bonsoir superbog, Lone-wolf,

Pourquoi passer par un fichier Word ?

C'est bien simple avec une feuille "Modèle" dans le fichier Excel :

Code:
Private Sub Worksheet_BeforedoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lig&
lig = Target.Row
If lig = 1 Or Target.Column > 1 Or Target = "" Then Exit Sub
Cancel = True
With ThisWorkbook.Names
  .Add "texte1", UCase(Trim(Cells(lig, 2) & " " & Target))
  .Add "texte2", UCase(Trim(Cells(lig, 4)))
  .Add "texte3", LCase(Trim(Mid(Cells(lig, 5), InStr(Cells(lig, 5), ",") + 1)))
  .Add "texte4", Cells(lig, 6)
  .Add "texte5", LCase(Trim(Mid(Cells(lig, 7), InStr(Cells(lig, 7), ",") + 1)))
  .Add "texte6", Cells(lig, 8)
End With
With Feuil2 'CodeName de la feuille Modèle
  .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\" & _
    Trim(Target & " " & Cells(lig, 2)) & Format(Date, " dd-mm-yyyy")
  .Activate
End With
End Sub
On pourrait tout aussi bien créer le fichier PDF en cliquant sur l'adresse mail...

Fichier joint.

Bonne fin de soirée.
 

Pièces jointes

  • FORMATEST(1).xlsm
    21.8 KB · Affichages: 36

Lone-wolf

XLDnaute Barbatruc
Re : vba excel vers word, intégrer des données d'excel dans un document word

Bonsoir job :)

Joli travail, mais si tu as une dizaine de certificats à faire, ce n'est pas un peu embêtant de faire 10 fois le double clic?. Dans ce cas ça serait mieux avec Selection_Change.
 

Pièces jointes

  • FORMATEST(2).xlsm
    21.5 KB · Affichages: 25
  • FORMATEST(2).xlsm
    21.5 KB · Affichages: 27
Dernière édition:

job75

XLDnaute Barbatruc
Re : vba excel vers word, intégrer des données d'excel dans un document word

Dans ce cas ça serait mieux avec Selection_Change.

Pourquoi pas, fichier (2) avec :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = Intersect(Target, [A:A], Me.UsedRange)
If Target Is Nothing Then Exit Sub
Dim lig&
Application.ScreenUpdating = False
For Each Target In Target
  lig = Target.Row
  If lig > 1 And Target <> "" Then
    With ThisWorkbook.Names
      .Add "texte1", UCase(Trim(Cells(lig, 2) & " " & Target))
      .Add "texte2", UCase(Trim(Cells(lig, 4)))
      .Add "texte3", LCase(Trim(Mid(Cells(lig, 5), InStr(Cells(lig, 5), ",") + 1)))
      .Add "texte4", Cells(lig, 6)
      .Add "texte5", LCase(Trim(Mid(Cells(lig, 7), InStr(Cells(lig, 7), ",") + 1)))
      .Add "texte6", Cells(lig, 8)
    End With
    Feuil2.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\" & _
      Trim(Target & " " & Cells(lig, 2)) & Format(Date, " dd-mm-yyyy")
  End If
Next
End Sub
Bonne nuit.
 

Pièces jointes

  • FORMATEST(2).xlsm
    22.7 KB · Affichages: 33
  • FORMATEST(2).xlsm
    22.7 KB · Affichages: 38

Lone-wolf

XLDnaute Barbatruc
Re : vba excel vers word, intégrer des données d'excel dans un document word

Et bien je viens d'apprendre une nouvelle chose

Set Target = Intersect(Target, [A:A], Me.UsedRange) au lieu de If Not Intersect. Merci job. Quand à Selection_Change, c'était déjà fait dans mon dernier fichier. ;)

Bonne nuit
 

Discussions similaires

Statistiques des forums

Discussions
314 714
Messages
2 112 140
Membres
111 436
dernier inscrit
jibusigor