Bonjour à tous,

Je suis encore novice en VBA mais je sais me démerder un peu. J'ai un code VBA qui permet de créer des tableaux sous Excel. Ces tableaux sont par la suite copier et coller dans un fichier word que je crée depuis Excel par VBA voici le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Copier_Coller()
Dim ws As Worksheet
 
    Set source = ThisWorkbook
    Nomdufichier = InputBox("Nom du fichier", "Saisie") 'enregistre le fichier sous le nom donné
 
Dim varDoc As Object
 
        Set varDoc = CreateObject("Word.Application")
 
                  varDoc.Visible = True
                  varDoc.Documents.Add
                    For Each ws In ActiveWorkbook.Worksheets
                    DL = ws.Range("B" & Rows.Count).End(xlUp).Row 'détermine la dernière ligne du tableau (en prenant comme référence la colonne B)
                If ws.Name <> "Balance" Then
 
                  ws.Range("B3:F" & DL).Copy 'selection du tableau (à adapter, F étant ici la dernière colonne)
 
                  varDoc.Selection.Paste 'recopie dans le document Word
                  ws.Range("J" & DL).Copy
                  varDoc.Selection.PasteAndFormat (wdPasteDefault)
                  On Error Resume Next
                  ws.Range("J3:J" & DL - 1).Copy 'selection du tableau (à adapter, J étant ici la dernière colonne)
                  varDoc.Selection.PasteAndFormat (wdPasteDefault) 'recopie dans le document Word
 
                  Application.CutCopyMode = False
                End If
 
                  Next ws
                  Sheets("Actif").Range("A1:I" & DL).Copy
                    varDoc.Selection.Paste
                Sheets("Actif").Range("J" & DL).Copy
                varDoc.Selection.PasteAndFormat (wdPasteDefault)
                Sheets("Actif").Range("J" & DL - 1).Copy
                varDoc.Selection.PasteAndFormat (wdPasteDefault)
 
                  varDoc.ActiveDocument.SaveAs ThisWorkbook.Path & "/" & Nomdufichier & ".doc" 'Enregistre le fichier sous le nom donné dans la InputBox
 
        Set varDoc = Nothing
 
        Set source = Nothing 'Les 2 lignes permettent de libérer la mémoire
 
 
 
End Sub
En plus de ce code :
- j'ai besoin d'insérer un texte et une image dans l'entête du fichier word (je connais pas le code pour) depuis VBA excel
- J'ai besoin d'écrire sur word depuis VBA excel plusieurs paragraphes : un premier paragraphe dont l'intitulé est I- Chiffre d'affaires / autre paragraphe dont l'intitulé II- Résultat ainsi de suite.
- J'ai aussi besoin que les tableaux que le code ici-haut copie et colle soit plutôt coller à partir de chacun des paragraphes, par exemple que le tableau correspond au chiffre d'affaires en feuil chiffre d'affaires soit collé dans le paragraphe I- Chiffre d'affaires.
- En dernier, la taille des tableaux doit être adapté à la page word et ne déborde pas pour ça j'ai penser à rajouter le code ci-après, mais cependant ça marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
varDoc.Tables(1).AutoFitBehavior (wdAutoFitWindow)
Merci d'avance pour votre aide!