Exporter des donneés Excel vers un fichier word

Bonjour,

J'ai utilisé une MACRO VB pour exporter les données d'un fichier Excel vers un fichier Word:

Sub export_workbook_to_word()
    Dim sheetName As String
    Set obj = CreateObject("Word.Application")
    obj.Visible = True
    Set newobj = obj.Documents.Add

    For Each ws In ActiveWorkbook.Sheets
        ws.UsedRange.Copy
        newobj.ActiveWindow.Selection.PasteExcelTable False, False, False
        newobj.ActiveWindow.Selection.InsertBreak Type:=7

    Next
        newobj.ActiveWindow.Selection.TypeBackspace
        newobj.ActiveWindow.Selection.TypeBackspace

    obj.Activate
    newobj.SaveAs Filename:=Application.ActiveWorkbook.Path & "\" & Split(ActiveWorkbook.Name, ".")(0)

End Sub

Ce script fonctionne, toutes les données (de tout le fichier - toutes les worksheets) avec la structure des tableaux sont récupérées. Je souhaiterais cependant créer une section ou faire une retour à la ligne pour chaque worksheet.

Pourriez-vous m'aider à modifier ce script pour faire cela?

Merci d'avance pour votre aide.

Bien à vous,

Seb

Bonjour Amadese,

Dans le code, l'instruction :

newobj.ActiveWindow.Selection.InsertBreak Type:=7

est censée insérer un saut de page entre les worksheets dans le doc WORD.

Est-ce bien ce qui se produit?

Si oui, pour un saut de section, il suffit de remplacer dans l'instruction le Type 7 pour un type 3 ou 4 suivant ce que tu désires.

Je joins un tableau donnant l'énumération des valeurs de Type de InsertBreak.

Bonjour,

Merci pour la réponse.

Effectivement ça le fait bien, J'ai oublié une partie de la demande , je voudrais également avoir le nom de la worksheet au début de chaque nouvelle section.

Merci encore

Seb

Bonjour Amadese,

Dans le code, l'instruction :

newobj.ActiveWindow.Selection.InsertBreak Type:=7

est censée insérer un saut de page entre les worksheets dans le doc WORD.

Est-ce bien ce qui se produit?

Si oui, pour un saut de section, il suffit de remplacer dans l'instruction le Type 7 pour un type 3 ou 4 suivant ce que tu désires.

Je joins un tableau donnant l'énumération des valeurs de Type de InsertBreak.

Bonjour,

Merci pour la réponse.

Effectivement ça le fait bien, J'ai oublié une partie de la demande , je voudrais également avoir le nom de la worksheet au début de chaque nouvelle section.

Merci encore

Seb

Amadese,

Dans la boucle, ajoute l'instruction en gras :

For Each ws In ActiveWorkbook.Sheets

newobj.ActiveWindow.Selection.InsertAfter (ws.Name)

ws.UsedRange.Copy

newobj.ActiveWindow.Selection.PasteExcelTable False, False, False

newobj.ActiveWindow.Selection.InsertBreak Type:=7

Next

(Code non testé)

Amadese,

Dans la boucle, ajoute l'instruction en gras :

For Each ws In ActiveWorkbook.Sheets

newobj.ActiveWindow.Selection.InsertAfter (ws.Name)

ws.UsedRange.Copy

newobj.ActiveWindow.Selection.PasteExcelTable False, False, False

newobj.ActiveWindow.Selection.InsertBreak Type:=7

Next

(Code non testé)

Merci. Je viens de tester, mais visiblement les titres des worksheets n'apparaissent pas dans le document word. J'ai vérifié les sheets sont bien nommées dans le document excel.

Amadese,

et si tu remplaces

newobj.ActiveWindow.Selection.InsertAfter (ws.Name)

par

newobj.ActiveWindow.Selection.InsertBefore (ws.Name) & vbCrLf

newobj.ActiveWindow.Selection.GoToNext (wdGoToLine)

cela va-t-il mieux?

(Code testé)

Amadese,

et si tu remplaces

newobj.ActiveWindow.Selection.InsertAfter (ws.Name)

par

newobj.ActiveWindow.Selection.InsertBefore (ws.Name) & vbCrLf

newobj.ActiveWindow.Selection.GoToNext (wdGoToLine)

cela va-t-il mieux?

(Code testé)

C'est parfait

Merci

Rechercher des sujets similaires à "exporter donnees fichier word"