Je souhaite faire une sorte de "publipostage light" via Excel : à chaque
signet trouvé dans Word, j'insère le contenu d'une cellule.
Le principe est simple, mais je ne sais pas trop comment faire : je sais
faire la boucle (sous Word) pour récupérer la liste des signets, mais je
ne sais pas comment l'intégrer dans VBA Excel.
Merci d'avance pour toute info, piste ou solution !!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lulu la nantaise
Bonjour Il y avait jb qui m'avais transmis ça il y a quelque temps et ça marche très bien ... Lulu
"Bonjour,
Voici un exemple de OLE automation Excel->Word. A partir d'une lettre type avec des signets, on crée des courriers personnalisés.
http://cjoint.com/?kFqA4O8AXN
http://cjoint.com/?kFqCl6LwD6
Cordialement JB
Sub ole() Dim oApp As Word.Application, doc As Word.Document Range("A2").Select ' premier client Do While Not IsEmpty(ActiveCell) On Error Resume Next nf = ThisWorkbook.Path & "malettre.doc" Set oApp = CreateObject("Word.Application") oApp.Visible = True Set doc = oApp.Documents.Open(nf) If Err <> 0 Then MsgBox "Le fichier malettre.doc doit être dans " & ThisWorkbook.Path Exit Sub End If On Error GoTo 0 ' Annule la gestion d'erreur '-- nom = ActiveCell.Value rue = ActiveCell.Offset(0, 1).Value ville = ActiveCell.Offset(0, 2).Value email = ActiveCell.Offset(0, 3).Value '-- With doc .Bookmarks("nom").Range.Text = nom .Bookmarks("rue").Range.Text = rue .Bookmarks("ville").Range.Text = ville End With nom_doc = ThisWorkbook.Path & "" & nom & ".doc" doc.SaveAs nom_doc oApp.Quit ActiveCell.Offset(1, 0).Select ' Client suivant Loop Set oApp = Nothing MsgBox "Lettres crées" End Sub "
"ThierryP" a écrit dans le message de news:%
Bonjour à tou(te)s !
Voilà mon petit problème :
Je souhaite faire une sorte de "publipostage light" via Excel : à chaque signet trouvé dans Word, j'insère le contenu d'une cellule. Le principe est simple, mais je ne sais pas trop comment faire : je sais faire la boucle (sous Word) pour récupérer la liste des signets, mais je ne sais pas comment l'intégrer dans VBA Excel.
Merci d'avance pour toute info, piste ou solution !!
thierryp
Bonjour
Il y avait jb qui m'avais transmis ça il y a quelque temps et ça marche très
bien ...
Lulu
"Bonjour,
Voici un exemple de OLE automation Excel->Word.
A partir d'une lettre type avec des signets, on crée des courriers
personnalisés.
http://cjoint.com/?kFqA4O8AXN
http://cjoint.com/?kFqCl6LwD6
Cordialement JB
Sub ole()
Dim oApp As Word.Application, doc As Word.Document
Range("A2").Select ' premier client
Do While Not IsEmpty(ActiveCell)
On Error Resume Next
nf = ThisWorkbook.Path & "malettre.doc"
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
Set doc = oApp.Documents.Open(nf)
If Err <> 0 Then
MsgBox "Le fichier malettre.doc doit être dans " &
ThisWorkbook.Path
Exit Sub
End If
On Error GoTo 0 ' Annule la gestion d'erreur
'--
nom = ActiveCell.Value
rue = ActiveCell.Offset(0, 1).Value
ville = ActiveCell.Offset(0, 2).Value
email = ActiveCell.Offset(0, 3).Value
'--
With doc
.Bookmarks("nom").Range.Text = nom
.Bookmarks("rue").Range.Text = rue
.Bookmarks("ville").Range.Text = ville
End With
nom_doc = ThisWorkbook.Path & "" & nom & ".doc"
doc.SaveAs nom_doc
oApp.Quit
ActiveCell.Offset(1, 0).Select ' Client suivant
Loop
Set oApp = Nothing
MsgBox "Lettres crées"
End Sub
"
"ThierryP" <thierryp_NO_SPAM@club-internet.fr> a écrit dans le message de
news:%23ijMxlU5FHA.1536@TK2MSFTNGP12.phx.gbl...
Bonjour à tou(te)s !
Voilà mon petit problème :
Je souhaite faire une sorte de "publipostage light" via Excel : à chaque
signet trouvé dans Word, j'insère le contenu d'une cellule.
Le principe est simple, mais je ne sais pas trop comment faire : je sais
faire la boucle (sous Word) pour récupérer la liste des signets, mais je
ne sais pas comment l'intégrer dans VBA Excel.
Merci d'avance pour toute info, piste ou solution !!
Bonjour Il y avait jb qui m'avais transmis ça il y a quelque temps et ça marche très bien ... Lulu
"Bonjour,
Voici un exemple de OLE automation Excel->Word. A partir d'une lettre type avec des signets, on crée des courriers personnalisés.
http://cjoint.com/?kFqA4O8AXN
http://cjoint.com/?kFqCl6LwD6
Cordialement JB
Sub ole() Dim oApp As Word.Application, doc As Word.Document Range("A2").Select ' premier client Do While Not IsEmpty(ActiveCell) On Error Resume Next nf = ThisWorkbook.Path & "malettre.doc" Set oApp = CreateObject("Word.Application") oApp.Visible = True Set doc = oApp.Documents.Open(nf) If Err <> 0 Then MsgBox "Le fichier malettre.doc doit être dans " & ThisWorkbook.Path Exit Sub End If On Error GoTo 0 ' Annule la gestion d'erreur '-- nom = ActiveCell.Value rue = ActiveCell.Offset(0, 1).Value ville = ActiveCell.Offset(0, 2).Value email = ActiveCell.Offset(0, 3).Value '-- With doc .Bookmarks("nom").Range.Text = nom .Bookmarks("rue").Range.Text = rue .Bookmarks("ville").Range.Text = ville End With nom_doc = ThisWorkbook.Path & "" & nom & ".doc" doc.SaveAs nom_doc oApp.Quit ActiveCell.Offset(1, 0).Select ' Client suivant Loop Set oApp = Nothing MsgBox "Lettres crées" End Sub "
"ThierryP" a écrit dans le message de news:%
Bonjour à tou(te)s !
Voilà mon petit problème :
Je souhaite faire une sorte de "publipostage light" via Excel : à chaque signet trouvé dans Word, j'insère le contenu d'une cellule. Le principe est simple, mais je ne sais pas trop comment faire : je sais faire la boucle (sous Word) pour récupérer la liste des signets, mais je ne sais pas comment l'intégrer dans VBA Excel.
Merci d'avance pour toute info, piste ou solution !!