Mise en page/export Excel sur Word
Résolu/Fermé
A voir également:
- Mise en page/export Excel sur Word
- Comment supprimer une page sur word - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Espace insécable word - Guide
6 réponses
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
25 juil. 2019 à 09:10
25 juil. 2019 à 09:10
Peut être
Repose ta question sur le forum dédié à Word, tu devrais quelqu'un pour t'aider
Repose ta question sur le forum dédié à Word, tu devrais quelqu'un pour t'aider
Raymond PENTIER
Messages postés
58800
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 janvier 2025
17 264
19 juil. 2019 à 03:42
19 juil. 2019 à 03:42
Bonsoir.
Si les ingénieurs et les informaticiens ont pris la peine de créer des logiciels distincts, c'est pour offrir à l'utilisateur des outils adaptés à un usage précis ; en l'occurrence :
- Si tu as de gros tableaux de calculs, il faut les diffuser sous forme de fichiers Excel, Numbers ou Calc.
- Si tu as un rapport de stage à présenter, même s'il contient beaucoup d'illustrations, réalise-le avec Publisher, Word, Writer, PowerPoint ou Pages, mais pas avec Access, Paint ou Calc
- Si tu as d'énormes photos de plusieurs Mo avec des millions de pixels, il faut les garder au format JPEG, PNG, BMP, TIFF ou même GIMP ... etc.
Donc si tu as une feuille Excel de plus d'une page, n'essaie pas de l'insérer dans un fichier PowerPoint ou Word : le résultat sera forcément décevant !
Si les ingénieurs et les informaticiens ont pris la peine de créer des logiciels distincts, c'est pour offrir à l'utilisateur des outils adaptés à un usage précis ; en l'occurrence :
- Tableurs = Calculs, graphiques, opérations complexes, tris et filtres ...
- Traitements de texte = Documents rédigés (lettres, rapports, fiches, mémoires, tableaux, formulaires) ...
- Bases de données = Classements, listes, requêtes, rapports ...
- Gestion d'image = Création/modification de dessins, peinture, croquis, plans 2D-3D
- Traitement de photos = Retouches, transformations, recoloration, arrière-plans ... etc.
- Si tu as de gros tableaux de calculs, il faut les diffuser sous forme de fichiers Excel, Numbers ou Calc.
- Si tu as un rapport de stage à présenter, même s'il contient beaucoup d'illustrations, réalise-le avec Publisher, Word, Writer, PowerPoint ou Pages, mais pas avec Access, Paint ou Calc
- Si tu as d'énormes photos de plusieurs Mo avec des millions de pixels, il faut les garder au format JPEG, PNG, BMP, TIFF ou même GIMP ... etc.
Donc si tu as une feuille Excel de plus d'une page, n'essaie pas de l'insérer dans un fichier PowerPoint ou Word : le résultat sera forcément décevant !
Bonjour Raymond,
Merci de me partager votre point de vue.
Je me suis peut-être mal exprimée mais ce n'est pas des gros tableur que j'ai à transposer sur Excel, juste une présentation synthétique en A4.
Après si Microsoft (et les autres développeurs de logiciel de traitement) s’embêtent à faire en sorte que leur application s'imbrique c'est pas pour rien je pense ^^
D'ailleurs, en lisant d'autres post, j'ai l'impression que c'est faisable avec du VBA, mais je serai incapable de le faire :/
En gros j'ai 3 onglets :
- Le premier fait 1 à 2 pages
- Le deuxième fait de 1 à 15 pages, facilement identifiable (l'utilisateur va faire en sorte que chaque page se termine au même endroit (par exemple chaque ligne 70 fait une nouvelle page : 70, 140, 210, etc)
- Le troisième onglet comme le premier fait de une à deux pages
Dans le Word, les onglets doivent être dans l'ordre.
Ce serait top d'avoir la génération du fichier Word avec un macro, j'ai vu d'autres personnes y arriver avec moins de 10 lignes de code.
Comme ça pas de changement de source à faire puisque j’obtiens un nouveau fichier Word à chaque fois. D’ailleurs le fichier Word aura le même nom que le fichier Excel.
Merci de me partager votre point de vue.
Je me suis peut-être mal exprimée mais ce n'est pas des gros tableur que j'ai à transposer sur Excel, juste une présentation synthétique en A4.
Après si Microsoft (et les autres développeurs de logiciel de traitement) s’embêtent à faire en sorte que leur application s'imbrique c'est pas pour rien je pense ^^
D'ailleurs, en lisant d'autres post, j'ai l'impression que c'est faisable avec du VBA, mais je serai incapable de le faire :/
En gros j'ai 3 onglets :
- Le premier fait 1 à 2 pages
- Le deuxième fait de 1 à 15 pages, facilement identifiable (l'utilisateur va faire en sorte que chaque page se termine au même endroit (par exemple chaque ligne 70 fait une nouvelle page : 70, 140, 210, etc)
- Le troisième onglet comme le premier fait de une à deux pages
Dans le Word, les onglets doivent être dans l'ordre.
Ce serait top d'avoir la génération du fichier Word avec un macro, j'ai vu d'autres personnes y arriver avec moins de 10 lignes de code.
Comme ça pas de changement de source à faire puisque j’obtiens un nouveau fichier Word à chaque fois. D’ailleurs le fichier Word aura le même nom que le fichier Excel.
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
19 juil. 2019 à 14:38
19 juil. 2019 à 14:38
Bonjour à vous deux
Et si tu enregistres ton fichier Excel en PDF ?
Cdlmnt
Via
Et si tu enregistres ton fichier Excel en PDF ?
Cdlmnt
Via
En effet ce serait possible, ça sort plutôt bien, mais j'ai quand même quelques inconvénients de tailles : par exemple si je veux rajouter un paragraphe simple, je dois fusionner les cellules → aller dans format de cellule → alignement → justifier .. C'est hyper chiant ^^ puis je peux pas rajouter de sommaire automatique
Je peux pas rajouter ce que je veux aussi facilement que sur Word. Avec Word je vais pouvoir facilement gérer mes numéros de page, mes en-têtes, ajouter des sauts de page, rajouter des images, etc
Je peux pas rajouter ce que je veux aussi facilement que sur Word. Avec Word je vais pouvoir facilement gérer mes numéros de page, mes en-têtes, ajouter des sauts de page, rajouter des images, etc
Raymond PENTIER
Messages postés
58800
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
7 janvier 2025
17 264
23 juil. 2019 à 19:09
23 juil. 2019 à 19:09
Dommage : Nous, on ne sait pas faire !
Essaie sur un autre site ...
Essaie sur un autre site ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Quand je passe par l'enregistreur de macro sous Word et que je fais le coller en mode point j'obtiens ça
Y a peut-être quelque chose à en tirer ? ^^
Selection.PasteSpecial Link:=True, DataType:=wdPasteBitmap, Placement:= _
wdInLine, DisplayAsIcon:=False
Y a peut-être quelque chose à en tirer ? ^^
Petit mise à jour, après plusieurs recherches sur différents forum j'ai effectivement vu que c'était possible.
Etape 1 : je génère des plages nommées de même dimension que mes saut de pages Excel
Etape 2 : Je copie chacune de ces plages et je les colle dans un Word généré pour l'occasion :
Voilà :')
Il me reste "plus qu'a" ajuster la dimension des objets collés
Etape 1 : je génère des plages nommées de même dimension que mes saut de pages Excel
Sub test()
suppNomsPage "En_tête"
nommerPages "En_tête"
suppNomsPage "Descriptif"
nommerPages "Descriptif"
suppNomsPage "Carac_tech"
nommerPages "Carac_tech"
End Sub
Sub nommerPages(nomF As String)
Dim HPB As HPageBreak, numP As Long, nom As String
Dim pl As Range, lig As Long, col1 As Long, nbCol As Long, derlig As Long
ActiveWindow.View = xlPageBreakPreview
With Sheets(nomF)
On Error GoTo fin
Set pl = Range(.PageSetup.PrintArea)
On Error GoTo 0
col1 = pl.Column: nbCol = pl.Columns.Count: derlig = pl.Row + pl.Rows.Count - 1
lig = pl.Row
For Each HPB In .HPageBreaks
numP = numP + 1
Set pl = .Cells(lig, col1).Resize(HPB.Location.Row - lig, nbCol)
nom = nomF & "!page_" & Format(numP, "00")
pl.Name = nom
lig = HPB.Location.Row
Next HPB
If lig < derlig Then
numP = numP + 1
Set pl = .Cells(lig, col1).Resize(derlig - lig + 1, nbCol)
nom = nomF & "!page_" & Format(numP, "00")
pl.Name = nom
End If
End With
fin:
End Sub
Sub suppNomsPage(nomF As String)
Dim nom As Name
For Each nom In ActiveWorkbook.Names
If Left(nom.Name, Len(nomF) + 6) = nomF & "!page_" Then nom.Delete
Next nom
End Sub
Etape 2 : Je copie chacune de ces plages et je les colle dans un Word généré pour l'occasion :
Function exist(feuille As String, nom As String) As Boolean
exist = False
On Error Resume Next
x = Sheets(feuille).Range(nom).Address
If Err.Number = 0 Then exist = True
On Error GoTo 0
End Function
Sub export_excel_to_word()
Dim obj As Object
Dim newObj As Object
Dim sh As Worksheet
Dim myFile
Set obj = CreateObject("Word.Application")
obj.Visible = True
Set newObj = obj.Documents.Add
' newObj.PageSetup.LeftMargin = CentimetersToPoints(1)
' newObj.PageSetup.RightMargin = CentimetersToPoints(1)
For n = 1 To 3
If exist("En_tête", "page_" & Format(n, "00")) Then
ThisWorkbook.Worksheets("En_tête").Range("page_" & Format(n, "00")).Copy
With obj.Selection
.PasteSpecial Link:=True, DataType:=wdPasteBitmap, _
Placement:=wdInLine, DisplayAsIcon:=False
' .PasteSpecial Link:=True, DataType:=wdPasteEnhancedMetafile, _
' Placement:=wdInLine, DisplayAsIcon:=False
.TypeParagraph
.InsertBreak Type:=7
End With
End If
Next
For n = 1 To 15
If exist("Descriptif", "page_" & Format(n, "00")) Then
ThisWorkbook.Worksheets("Descriptif").Range("page_" & Format(n, "00")).Copy
With obj.Selection
'.PasteSpecial Link:=True, DataType:=wdPasteEnhancedMetafile,
.PasteSpecial Link:=True, DataType:=wdPasteEnhancedMetafile, _
Placement:=wdInLine, DisplayAsIcon:=False
.TypeParagraph
.InsertBreak Type:=7
End With
End If
Next
For n = 1 To 5
If exist("Carac_tech", "page_" & Format(n, "00")) Then
ThisWorkbook.Worksheets("Carac_tech").Range("page_" & Format(n, "00")).Copy
With obj.Selection
.PasteSpecial Link:=True, DataType:=wdPasteEnhancedMetafile, _
Placement:=wdInLine, DisplayAsIcon:=False
.TypeParagraph
.InsertBreak Type:=7
End With
End If
Next
Application.CutCopyMode = False
myFile = Replace(ActiveWorkbook.Name, "xlsm", "docx") 'remplacer "docx" par l'extension qui convient, si nécessaire
newObj.SaveAs Filename:=Application.ActiveWorkbook.Path & "\" & myFile
MsgBox "Export vers Word terminé", vbInformation + vbOKOnly, "Export vers Word"
obj.Activate 'vous pouvez jouer sur les marges pour améliorer la lecture
Set obj = Nothing
Set newObj = Nothing
End Sub
Voilà :')
Il me reste "plus qu'a" ajuster la dimension des objets collés