Togomy
XLDnaute Nouveau
Bonjour à tous et à toutes,
Voilà mon challenge:
Copie d'un tableau issue de excel dans un nouveau document word. → OK
Mise en page du tableau dans word pour qu'il rentre sur une seule page à partir de la macro → Non OK
Pourquoi mettre la mise en page dans la macro excel? tout simplement pour limiter les opérations dans le word et ainsi gagner du temps.
J'ai ajouté la librairie "Microsoft Word 12.0 Object Library" dans mes références.
Voici donc le code en question:
Ce que je ne comprends pas c'est que les lignes de codes suivantes ne rendent aucunes erreurs mais c'est comme si elles n'étaient pas prises en compte. (Elles sont censées régler la hauteur de ligne)
et ensuite les lignes suivantes me donnent des erreurs d'exécution : "Le membre de la collection requis n'existe pas."
Voilà
Je suis donc bloqué dans ma démarche.
Comme il est possible que mes lignes de codes ne soient pas optimales, je redonne mon objectif: Modifier les hauteurs de lignes et la hauteur minimale de cellule dans un tableau word à partir d'une macro dans excel.
Je remercie par avance ceux qui accepteront le challenge. 😉
Voilà mon challenge:
Copie d'un tableau issue de excel dans un nouveau document word. → OK
Mise en page du tableau dans word pour qu'il rentre sur une seule page à partir de la macro → Non OK
Pourquoi mettre la mise en page dans la macro excel? tout simplement pour limiter les opérations dans le word et ainsi gagner du temps.
J'ai ajouté la librairie "Microsoft Word 12.0 Object Library" dans mes références.
Voici donc le code en question:
Code:
Sub test1()
'Création des Variables
Dim Gamme As Object
Dim WordFile As Object
Dim NewTextBox As Object
Dim NewTable As Object
Dim aTable As Object
'Selection des cellules non vides du classeur
ActiveSheet.UsedRange.Select
'Range("A1:AD44").Select
'Copie de la selection
Selection.Copy
'Création du document word
Set Gamme = CreateObject("Word.Application") 'Ouverture de word
Gamme.Documents.Add 'Creation d'une page
'Option du format de page et de mise en page du word
Gamme.WordBasic.PageSetupMargins Tab:=0, PaperSize:=0, TopMargin:="1", _
BottomMargin:="1", LeftMargin:="1", RightMargin:="1", Gutter:="0", _
PageWidth:="29.7", PageHeight:="21", Orientation:=1, FirstPage:=0, _
OtherPages:=0, VertAlign:=0, ApplyPropsTo:=4, FacingPages:=0, _
HeaderDistance:="1.25", FooterDistance:="1.25", SectionStart:=2, _
OddAndEvenPages:=0, DifferentFirstPage:=0, Endnotes:=0, LineNum:=0, _
CountBy:=0, TwoOnOne:=0, GutterPosition:=0, LayoutMode:=0, DocFontName:= _
"", FirstPageOnLeft:=0, SectionType:=1, FolioPrint:=0, ReverseFolio:=0, _
FolioPages:=1
'Fonction "coller"
Gamme.Selection.PasteSpecial
With Gamme.Selection.ParagraphFormat
.SpaceAfterAuto = True
.LineSpacingRule = wdLineSpaceSingle
.WidowControl = True
End With
'Gamme.Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter ' Fonction pour centrer le texte dans les cellules dans word
'Gamme.Selection.Rows.HeightRule = wdRowHeightAtLeast ' Fonction pour la hauteur des lignes
'Gamme.Selection.Rows.Height = CentimetersToPoints(0.1) ' Valeur minimale de la hauteur de ligne
Gamme.Selection.Tables(1).AutoFitBehavior wdAutoFitWindow ' Fonction auto ajust du tableau dans la
'Affiche le document word à l'écran
Gamme.Visible = True
'Désactive le mode Copier/Coller
Application.CutCopyMode = False
'Réactivation de la mise à jour de l'écran
Application.ScreenUpdating = True
Set NewTextBox = Nothing
Set WordFile = Nothing
Set Gamme = Nothing
End Sub
Ce que je ne comprends pas c'est que les lignes de codes suivantes ne rendent aucunes erreurs mais c'est comme si elles n'étaient pas prises en compte. (Elles sont censées régler la hauteur de ligne)
Code:
With Gamme.Selection.ParagraphFormat
.SpaceAfterAuto = True
.LineSpacingRule = wdLineSpaceSingle
.WidowControl = True
End With
et ensuite les lignes suivantes me donnent des erreurs d'exécution : "Le membre de la collection requis n'existe pas."
Code:
Gamme.Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter ' Fonction pour centrer le texte dans les cellules dans word
Gamme.Selection.Rows.HeightRule = wdRowHeightAtLeast ' Fonction pour la hauteur des lignes
Gamme.Selection.Rows.Height = CentimetersToPoints(0.1) ' Valeur minimale de la hauteur de ligne
Voilà
Je suis donc bloqué dans ma démarche.
Comme il est possible que mes lignes de codes ne soient pas optimales, je redonne mon objectif: Modifier les hauteurs de lignes et la hauteur minimale de cellule dans un tableau word à partir d'une macro dans excel.
Je remercie par avance ceux qui accepteront le challenge. 😉
Dernière édition: