le context :
via une application tiers (lotus notes pour ne pas le nommer) je pilote excel pour créer des des tableaux croisé dynamique dans un fichier xls.
j'aimerai modifier 'dynamiquement' la mise en page de ma feuille nouvellement créé pour que les tableaux ne soit plus sur plusieurs pages (horizontal et vertical).
je connais déjas les fonctions permetant de manipuler la mise ne page.
ex :
Code:
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.Zoom = 90
End With
...
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
mais je ne trouve pas comment 'tester' la mise en page actuel pour faire les conditions suivante :
si le mise en pages horizontale de la feuille actuel est > 2 feuille alors
diminuer le zoom.
Si un tablau est coupé sur plusieurs page verticalement alors
insérer un saut de page
Re : mise en page selon contenu d'une feuille en VBA
Bonjour gillou13 et bienvenue (pour ton premier message, du moins!)
En l'absence d'autres réponses (et surtout parce que les choses simples sont plus à ma portée!) ne peux-tu envisager d'ajuster une page en largeur sur une page en hauteur?
Code:
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With
Re : mise en page selon contenu d'une feuille en VBA
merci pour ta réponse Modeste,
mais j'ai déjà testé et se n'est pas compatible dans certain cas de figure des TCD.
Comme ils sont "dynamique" (l'utilisateur doit coché des cases + autre pour ajouter ou non des informations) dont il varie beaucoup de taille.
et quand il seront trop grand il faut limite du format A3 pour qu'il reste lisible.
(selon l'utilisateur final : "je ne déchiffre pas les pattes de mouche à mon age...")