Microsoft 365 VBA et publipostage

LUMBARDO

XLDnaute Nouveau
Bonsoir,

J'avais un code qui fonctionnait très bien jusqu'à présent. Il permet à partir d'une base de données de rédiger des lettres types (rien de très original).

1608151973990.png

et horreur depuis hier lorsque je lance le publipostage :

1608152302710.png


Blocage, il semble y avoir un problème de chemin...

Quelqu'un a t-il déjà rencontré cette difficulté et ....trouvé la solution ?

Il s'agit d'Exel et Word 365. Merci
 

Pièces jointes

  • 1608152181338.png
    1608152181338.png
    10.3 KB · Affichages: 53

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

=>LUMBARDO
Suis scrupuleusement les étapes suivantes
1) Dans un nouveau classeur avec une seule feuille nommée Feuil1
Puis copie/colle cette macro et execute-là
VB:
Sub CreerExempleBase()
Dim f As Worksheet: Set f = ActiveSheet
[A1:F1] = Array("Item1", "Item2", "Item3", "sinistre", "Item5", "Item6", "Item7")
[A2:F30].FormulaR1C1 = "=ADDRESS(ROW(),COLUMN(),4)"
[D2:D30].FormulaR1C1 = "=CHOOSE(RANDBETWEEN(1,5),""incendie"",""inondation"",""accident"",""orage"",""cambriolage"")"
Cells(1).CurrentRegion = Cells(1).CurrentRegion.Value
f.ListObjects.Add(xlSrcRange, f.Range("$A$1:$F$30"), , xlYes).Name = "Tableau1"
End Sub
2) Enregistre sous en *.xlsx dans un dossier de ton choix
3) Ferme Excel et ouvre Word
Créé un document de publipostage (en utilisant l'Assistant)
Tu devrais obtenir un truc de ce genre
0101publi.gif

Testes manuellement le publipostage
Puis enregistres le document Word* et ferme Word.
(* dans le même dossier que la base Excel)
4) Ensuite dans un nouveau classeur, copie/colle le code VBA du message#8
(en adaptant le chemin et le nom du fichier et en cochant la référence à la librairie Word)
Et tu lances la macro

Je viens de refaire le test de A à Z et cela fonctionne.
 

LUMBARDO

XLDnaute Nouveau
Bonjour,
J'ai exhumé ce code qui ne fonctionnait plus pour en bidouiller un qui fonctionne chez moi mais seulement une fois... Il faut que le sorte de l'appli et ça repart pour... une fois. Ce qui semble vouloir dire que je ne ferme pas quelque chose. Une idée ?

Private Sub CommandButton66_Click()
Dim docWord As Word.Document
Dim appWord As Word.Application
Dim NomBase As String

On Error Resume Next

If ComboBox2.Value = "" Then
MsgBox "Il n'y a pas de dossier sélectionné !", vbOKOnly + vbCritical, "Vas te coucher !"
Unload Me
irs1.Show
Else

NomBase = "c:\xxxx\user\irs1.xlsm"

End If
Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
'Ouverture du document principal Word
Set docWord = appWord.Documents.Open("C:\Users\xxxx\Documents\Nouvelles lettres\" & ListBox8.Value)


ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Users\do0059\Documents\irs1.xlsm", ConfirmConversions:=False, _
ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\xxxx\Documents\irs1.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mod" _
, SQLStatement:="SELECT * FROM `données$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess

ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle

ActiveDocument.MailMerge.datasource.ActiveRecord = Me.TextBox60.Value

End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA