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

  • Initiateur de la discussion Initiateur de la discussion ThierryP
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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...
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 ! 😅😅
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
441
Réponses
11
Affichages
472
Réponses
7
Affichages
3 K
Retour