2 pièce(s) jointe(s)
Export plusieurs extraits d'un EXCEL vers 1 WORD
Bonjour,
Tous les 3 mois ma boss prépare le compte rendu au CA qui suit toujours la même trame:
On a un tableau de suivi de production commun où on suit tous nos projets avec tout un tas de dates prévisionnelles.
Pour établir ce rapport voici la trame :
- cacher les colonnes inutiles
- copie colle un extrait du tableau en filtrant la phase de projet
- petit commentaire pour les projets concernés par cette phase
- rebelotte pour les phase suivante..
- conclusion générale
Exemple :
Pièce jointe 613541 notre tableau de prod
le rapport
Pièce jointe 613542
(désolée pour les puristes, il s'agit d'un vulgaire exemple vite fait sur google sheets :) )
Exporter un fichier excel dans word, c'est facile mais là je butte étant donné qu'il s'agit de plusieurs extraits avec différents filtres du tableau.
J'ai bien pensé aux affichages personnalisés mais bon reste toujours le fastidieux copié collé.
Je ne maîtrise pas du tout les tableaux croisés dynamiques mais je ne pense pas que cela convienne.
Je suis béotienne en macro et VBA, mais comme j'aime bien les défis, si c'est la méthode à utiliser je vais apprendre :)
J'ai trouvé ce code sur internet, mais cela crée un word par export, ce n'est pas ce que je recherche :) Bon et le graphique, pour l'instant c'est pas la priorité
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Sub Passage_Excel_Word()
Dim appWord As New Word.Application
Dim docWord As New Word.Document
' Il faut créer un nouveau document Word dans l'application Word
With appWord
.Visible = True
Set docWord = .Documents.Add
.Activate
End With
'Dans Word on ajoute une ligne de titre avec une mise en forme
With appWord.Selection
.TypeText Text:="Chiffre d'affaire 2003"
.HomeKey Unit:=wdLine
.EndKey Unit:=wdLine, Extend:=wdExtend
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Font.Size = 18
With .Font
.Name = "Arial"
.Size = 16
.Bold = True
End With
'Copier le tableau Excel dans le presse papier
Range("a1:b8").Copy
' Coller le tableau dans Word avec liaison
.EndKey Unit:=wdLine
.TypeParagraph
.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _
Placement:=wdInLine, DisplayAsIcon:=False
'Copier le graphique Excel dans le presse papier
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Copy
'Coller le graphique dans Word
.TypeParagraph
.Paste
End With
'Enregistrer le document Word
With docWord
.SaveAs ThisWorkbook.Path & "\ca_2003.doc", Allowsubstitutions:=True
'Dans Word Aperçu avant impression du résultat
.PrintPreview
'Réinitialiser l'objet
Set appWord = Nothing
End With
End Sub |
La source de ce code : https://olivier-bureautique.blogspot...e-passage.html
Merci à tous