Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fusion avec un graphique

3 réponses
Avatar
Alex St-Pierre
Bonjour,
J'ai une fusion avec 10 000 lignes dans Excel et j'ai un graphique dans Word
qui dépend de 3 champs de fusions. Le graphique est un graphique par secteur
(cercle avec pointe de tarte). J'ai essayé de mettre les champs de fusion à
l'intérieur de la feuille de données Word pour que le graphique soit mis à
jour automatiquement mais ça fonctionne pas. Est-ce quelqu'un à une idée ?
Merci !
Alex
--
Alex St-Pierre

3 réponses

Avatar
Anacoluthe
Bonjour !

'Alex St-Pierre' nous a écrit ...
J'ai une fusion avec 10 000 lignes dans Excel et j'ai un graphique dans Word
qui dépend de 3 champs de fusions. Le graphique est un graphique par secteur
(cercle avec pointe de tarte). J'ai essayé de mettre les champs de fusion à
l'intérieur de la feuille de données Word pour que le graphique soit mis à
jour automatiquement mais ça fonctionne pas. Est-ce quelqu'un à une idée ?


Ce n'est pas très difficile mais il faut s'y connaitre un peu en macros :-p
Il faut utiliser un /évènement/ de publipostage : à chaque enregistrement,
sur l'évènement fin de fusion lancer en automation la création dans Excel
du graphique à partir des 3 valeurs des champs de l'enregistrement
puis coller le graphique dans le document de fusion. Le plus gros de la
programmation est à faire dans Excel pour générer le graphique.
Dans la mesure où la fusion va composer 10000 graphiques, le mieux est de
coller l'image de chaque graphique, car un document contenant 10000 objets
Excel incorporés risquerait d'exploser.
Une autre solution, si on est plus vba-excel, serait de tout faire dans Excel
en Automation : création d'un document Word à partir d'un modèle, remplissage
des champs, création du graphique, copie dans Word, enregistrement ou
impression du document, passage à la ligne suivante etc

Anacoluthe
« Excelle, et tu vivras. »
- Joseph JOUBERT

Avatar
Alex St-Pierre
Bonjour Anacoluthe!
Concernant la première approche, j'ai pensé mettre le graphique dans Word et
le modifier entre chaque ligne (record) tout juste avant de fusionner. Le
problème, c'est si je fusionne les relevés un par un, je vais remasser avec
10 000 fichiers. Donc, je pourrais mettre 100 fichiers de 100 relevés.
J'imagine que tu dois avoir le même problème en Excel quand tu modifie le
graphique entre chaque enregistrement.
Concernant la 2e approche, c'est ce qu'il y a de mieux mais comme le tout
est déjà monté en fusion, je ne veux repartir à 0 ;) surtout que le relevé
prend environ une vingtaine de pages.
Merci !
Alex

Voici ce que j'utilise pour modifier le tableau dans Word.
Sub MailMergeWithInlineShape()
Dim appWord As Word.Application
Dim docWord1 As Word.Document
Dim oChart As Graph.Chart

Dim c As Long
Set appWord = Word.Application
Set docWord1 = appWord.ActiveDocument

With docWord1
.InlineShapes(1).OLEFormat.Activate
Set oChart = .InlineShapes(1).OLEFormat.Object
End With

For i = 1 To 1000
With docWord1.mailmerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = i
.LastRecord = i
End With

oChart.Application.DataSheet.Range("A1").Value =
.Fields("actions mondiales")
oChart.Application.DataSheet.Range("A2").Value =
.Fields("obligations canadiennes")
oChart.Application.DataSheet.Range("A3").Value =
.Fields("autres")

.Execute Pause:úlse
End With
Next i

Set oChart = Nothing
Set docWord1 = Nothing
Set appWord = Nothing
End Sub

--
Alex St-Pierre


"Alex St-Pierre" wrote:

Bonjour,
J'ai une fusion avec 10 000 lignes dans Excel et j'ai un graphique dans Word
qui dépend de 3 champs de fusions. Le graphique est un graphique par secteur
(cercle avec pointe de tarte). J'ai essayé de mettre les champs de fusion à
l'intérieur de la feuille de données Word pour que le graphique soit mis à
jour automatiquement mais ça fonctionne pas. Est-ce quelqu'un à une idée ?
Merci !
Alex
--
Alex St-Pierre


Avatar
Anacoluthe
Bonjour !

'Alex St-Pierre' nous a écrit ...
Concernant la première approche, j'ai pensé mettre le graphique dans Word et
le modifier entre chaque ligne (record) tout juste avant de fusionner. Le
problème, c'est si je fusionne les relevés un par un, je vais remasser avec
10 000 fichiers. Donc, je pourrais mettre 100 fichiers de 100 relevés.
J'imagine que tu dois avoir le même problème en Excel quand tu modifie le
graphique entre chaque enregistrement.


Non je ne vois pas bien le problème. Si on utilise le publipostage c'est
pour produire ou imprimer d'un coup les 10000 documents. Utiliser
un publipostage en faisant chaque fusion une à une offre peu d'intérêt.
Autant dans ces conditions partir d'un simple document et le modifier à
partir de données Excel.
Votre code modifie en permanence le document principal. Si vous restez
sur le principe du publipostage, c'est le document de fusion qu'il faut
modifier pour chaque enregistrement.
Le seul problème pratique que je vois est que si on fusionne dans UN
document comportant 10000 sections, on va se retrouver avec UN document
contenant 10000 graphiques : probablement trop lourd ! Donc soit c'est
une fusion d'impression soit on fusionne des images.

Anacoluthe
« Une image vaut mille mots. »
- CONFUCIUS