Autres Exporter des tableau Excel vers Word sous VBA

mtaieb5

XLDnaute Nouveau
Bonjour à tous,

Je sollicite un coup de main svp. Je rédige un mémoire de fin d'étude et je suis censé produire un outil "kit de génération de rapport de Excel vers Word avec plusieurs feuilles de travail". Aussi je tiens à informer l'ensemble des membres que je suis très novice dans la pratique du VBA.

Mon problème est le suivant :

J'ai réussi à exporter l'ensemble de mes donnés sauf les tableaux, qui se nomment "TVA" & "ARCHIVAGE".

Je souhaite exporter mes tableau à l'aide de signet dans un endroit bien précis au niveau du rapport dont je joins les les fichiers.

Il ne me reste que 7 jours pour finaliser et transmettre mon mémoire.

Merci d'avance à tous.
 

Pièces jointes

  • Documentation_PAF.xlsm
    87.3 KB · Affichages: 16
  • Model_Documentation.docx
    62.4 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bonjour mtaieb, fanch55, le forum,

Téléchargez les fichiers joints dans le même dossier (le bureau) et exécutez cette macro :
VB:
Sub Export()
Dim chemin$, doc$, Wapp As Object, n&
chemin = ThisWorkbook.path & "\" 'à adapter
doc = "Model_Documentation.docx" 'à adapter
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Err Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Wapp.Documents(doc).Close False 'si le document est ouvert on le ferme
With Wapp.Documents.Open(chemin & doc) 'ouvre le document Word
    '---suppression des tableaux existants---
    For n = .Tables.Count To 1 Step -1
        .Tables(n).Delete 'RAZ
    Next
    '---copie le 1er et 2ème tableau Excel après le 1er signet---
    Err = 0
    Evaluate("Tableau_1:Tableau_2").Copy
    n = .Bookmarks("Tableau_TVA").Start + Len(.Bookmarks("Tableau_TVA")) + 1
    If Err Then MsgBox "Tableau ou signet non définis !", 48: GoTo 1
    .Range(n, n).Select
    Wapp.Selection.Paste
    Application.CutCopyMode = 0
    '---copie le 3ème tableau Excel après le 2ème signet---
    [Tableau_3].Copy
    n = .Bookmarks("Tableau_archivage").Start + Len(.Bookmarks("Tableau_archivage")) + 1
    If Err Then MsgBox "Tableau ou signet non définis !", 48: GoTo 1
    .Range(n, n).Select
    Wapp.Selection.Paste
1   Application.CutCopyMode = 0
    '---pour réduire la hauteur des tableaux---
    For n = 1 To .Tables.Count
        .Tables(n).Range.ParagraphFormat.SpaceAfter = 3
    Next
    '---cadrage en haut (facultatif)---
    '.Range(1, 1).Select
End With
AppActivate "Word" 'activation facultative
End Sub
En cas de problème relancez la macro.

A+
 

Pièces jointes

  • Documentation_PAF(1).xlsm
    107.1 KB · Affichages: 14
  • Model_Documentation.docx
    60.9 KB · Affichages: 14

fanch55

XLDnaute Barbatruc
Bonjour à tous,
@mtaieb5 :
Un autre exemple pour l'archivage ( à reproduire pour la tva )
1) mettre la sub suivante dans le module module1 d'excel :
VB:
Private Sub Traitement_Archivage()
    Dim ctrl As Object
    [Tableau_3].Copy
    For Each ctrl In WordDoc.SelectContentControlsByTitle("Tableau_Archivage")
        ctrl.Range.PasteExcelTable False, False, True
    Next
End Sub
2) y faire référence dans la sub Traitement_document
3) placer dans le document Word un contrôle Texte Enrichi à l'endroit voulu avec le nom Tableau_Archivage:
1613313864569.png

4) sauvegardez le document word
5) exécutez le processus normal dans Excel
1613314009517.png
 

mtaieb5

XLDnaute Nouveau
Bonjour ou bonsoir à tous,

Bonjour à tous,
@mtaieb5 :
Un autre exemple pour l'archivage ( à reproduire pour la tva )
1) mettre la sub suivante dans le module module1 d'excel :
VB:
Private Sub Traitement_Archivage()
    Dim ctrl As Object
    [Tableau_3].Copy
    For Each ctrl In WordDoc.SelectContentControlsByTitle("Tableau_Archivage")
        ctrl.Range.PasteExcelTable False, False, True
    Next
End Sub
2) y faire référence dans la sub Traitement_document
3) placer dans le document Word un contrôle Texte Enrichi à l'endroit voulu avec le nom Tableau_Archivage:
Regarde la pièce jointe 1095562
4) sauvegardez le document word
5) exécutez le processus normal dans Excel
Regarde la pièce jointe 1095563
Bonsoir FANCH55 tu as eu une super idée. ça fonctionne à merveille.
je vais enfin pouvoir déstressé et me concentrer sur la suite du mémoire.
Merci beaucoup.
Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 182
Messages
2 086 002
Membres
103 084
dernier inscrit
Hervé30120