Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Calculer le nombre de lignes pour impression (pdf ou physique)

ThierryP

XLDnaute Occasionnel
Bonjour le forum,

Après pas mal de recherches (infructueuses sinon je ne serais pas là ), je viens chercher des pistes chez les gourous !
Dans un fichier, l'onglet a une mise en page type, en fonction de la hauteur des lignes par défaut (14 dans mon cas).

Je suis amené à insérer des descriptifs de longueur variable , et donc j'ajuste la hauteur au contenu de la cellule par double-clic.
Je voudrais avoir une alerte qui me dise en gros "plus assez de place sur la page, crée une autre page" si cet autofit augmente la hauteur de ligne (et donc l'impression ne tient plus sur une page) mais je ne vois pas comment intercepter l'autofit dans les évènements de feuille.

Si quelqu'un a une idée de début de piste, je prends !!

Merci d'avance,
 
Solution
Posté trop vite......
Finalement en faisant ceci dans le module de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Intersect(Target, Range("Plage")) Is Nothing Then Exit Sub
If Target.RowHeight <> H_Ligne And IsEmpty(Target) Then Target.RowHeight = H_Ligne : GoTo fin
fin:
Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("Plage").Height <> H_Totale Then
    MsgBox "Créer page"
End If
End Sub
et ceci dans un module standard :
Code:
Public Const H_Ligne As Integer = 14
Public Const H_Totale As Integer = 378
"Plage" est la plage nommée que je dois "surveiller".

Sûrement à bientôt pour...

ThierryP

XLDnaute Occasionnel
Posté trop vite......
Finalement en faisant ceci dans le module de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
If Intersect(Target, Range("Plage")) Is Nothing Then Exit Sub
If Target.RowHeight <> H_Ligne And IsEmpty(Target) Then Target.RowHeight = H_Ligne : GoTo fin
fin:
Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("Plage").Height <> H_Totale Then
    MsgBox "Créer page"
End If
End Sub
et ceci dans un module standard :
Code:
Public Const H_Ligne As Integer = 14
Public Const H_Totale As Integer = 378
"Plage" est la plage nommée que je dois "surveiller".

Sûrement à bientôt pour de nouvelles questions !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…