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
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.
varDoc.Tables(1).AutoFitBehavior (wdAutoFitWindow)
Merci d'avance pour votre aide!
Partager