Ajustement automatique plage d'impression

celiostat

XLDnaute Nouveau
Bonjour a la communaute,

Je realise des bons de commande sur Excel.
Ceux-ci peuvent faire 12 lignes ou 70 lignes. Dans une perspective d'automatisation, je souhaiterais -si la fonction existe- pouvoir ajuster automatiquement le plage d'impression en fonction du contenu, de maniere a ce que le feuille soit prete a imprimer a tout instant sans avoir a passer par le mode mise en page/page break view.

La cerise sur le gateau serait que l'ajustement se fasse seulement sur la hauteur.

Je n'ai pas trouve de solution pour le moment !
Merci a tous pour votre aide :)
 

Papou-net

XLDnaute Barbatruc
Re : Ajustement automatique plage d'impression

Bonjour celiostat,

Voici un fichier exemple avec une macro événementielle :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet.PageSetup
  .PrintArea = Range("A1").CurrentRegion.Address
  .FitToPagesTall = 1
End With
End Sub
Cette macro est exécutée autompatiquement lorsque tu lances l'impression du fichier, que ce soit par le bouton ou par le menu.

Tu n'as plus qu'à recopier ce code dans ton fichier, en notant que si ton tableau ne démarre pas en cellule A1, tu remplaceras cette référence par celle de n'importe quelle cellule de ton tableau.

Cordialement.
 

Pièces jointes

  • celiostat.xlsm
    91.9 KB · Affichages: 103

celiostat

XLDnaute Nouveau
Re : Ajustement automatique plage d'impression

Bonjour Papour-net,

merci pour ton retour,
cependant, cela ne correspond pas entierement a l'effet recherche, car je voudrais figer la largeur de colonne, et que l'ajustement ne se fasse que verticalement, en fonction du nombre de lignes !

....
hum
 

Papou-net

XLDnaute Barbatruc
Re : Ajustement automatique plage d'impression

Bonjour celiostat,

Au temps pour moi, dans mon esprit "ajustement vertical" voulait dire une seule page en hauteur.

Tu peux donc essayer le code suivant :

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet.PageSetup
  .PrintArea = Range("A1").CurrentRegion.Address
  .FitToPagesWide = 1
  .FitToPagesTall = False
End With
End Sub
Curieusement, si le nombre de colonnes dépasse un certain seuil, l'ajustement sur une seule page en largeur ne se fait plus. Je pense que c'est dû au fait que la taille des caractères ne serait plus compatible avec la taille de la page.

Cordialement.
 

Discussions similaires

Réponses
7
Affichages
582
Réponses
1
Affichages
852

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr