Retirer les sauts de pages Automatiques - Excel VBA

Bonjour à tous et à toutes,

Je viens vous demander votre aide car ici, il y a beaucoup de sauveurs ! :)

J'ai un petit code qui permet de créer des sauts de pages manuels, cependant j'ai des "Sauts de pages" automatiques qui se rajoutent et qui nuisent à toute la mise en page. Ce que je ne comprends pas c'est que par exemple : si j'ai 50 lignes et que je dis à Excel d'ajuster sur 1 page en hauteur il y arrive sans soucis et le contenu reste lisible, mais quand dans la macro je fais des sauts de pages tous les 30 lignes ça ne devient plus possible et Excel ajoute des sauts de pages automatiques, car il ne peut pas tout "contenir", alors que si.

Quelqu'un aurait une solution pour retirer définitivement les sauts de pages automatiques et qu'Excel se s'adapte automatique à faire une mise en page par rapport au nombre de lignes imposées ? Je vous mets un fichier exemple ci-joint.

D'avance merci pour vos solutions ! :)

Application.EnableEvents = False

'Application.WorksheetFunction.RoundUp(Valeur) 'arrondi à l'unité supérieure

NombreSautP = InputBox("Combien de lignes par pages ?", "Nombre entier uniquement")

Set lRow = Sheets(1).Range("C" & Rows.Count).End(xlUp)

lRow = lRow.Row - 4 'enlève 4 à cause des titres

Debug.Print lRow

ActiveWindow.View = xlPageBreakPreview

Sheets(1).Activate

Sheets(1).PageSetup.PrintArea = "$C$1:$P$" & lRow + 4

Sheets(1).PageSetup.PrintTitleRows = "$4:$4"

'Sheets(1).Cells.PageBreak = xlPageBreakNone 'reset les PageBreak

Sheets(1).ResetAllPageBreaks

Sheets(1).PageSetup.FitToPagesWide = 1

Sheets(1).PageSetup.FitToPagesTall = False 'Application.WorksheetFunction.RoundDown(lRow / NombreSautP, 0)

On Error Resume Next

For x = 0 To lRow Step NombreSautP

If compteur < Application.WorksheetFunction.RoundDown(lRow / NombreSautP, 0) Then

compteur = compteur + 1

Debug.Print "Nombre entier valeure inférieure = " & Application.WorksheetFunction.RoundDown(lRow / NombreSautP, 0)

Debug.Print "x = " & x

Debug.Print "NombreSautP = " & NombreSautP

Debug.Print "Compteur = " & compteur

Sheets(1).Rows(NombreSautP + x + 5).PageBreak = xlPageBreakManual

End If

Next x

Application.EnableEvents = True

Bonjour Vincent_SL7,

L'on peut retirer les sauts de page manuels ... mais pas les automatiques qui varient en fonction de ce qu'il y a à imprimer et des paramètres de l'imprimante ...

Exemple : En changeant le format papier pour légal (papier plus long) ... les sauts de pages automatiques vont sauter automatiquement à d'autres endroits ...

ric

Bonjour,

comme dit au-dessus les saut de page automatiques ne sont pas désactivables.
Contrôles tes marges et le format papier utilisé. Si ça ne rentre pas c'est que ça dépasse te dirait zezette épouse X
eric

Bonjour le Fil,

C'est c'la, C'est c'la.

Ah, un connaisseur

Bonjour,

merci pour vos retours, n'y a-t-il pas une possibilité de savoir l'hauteur maximum par page avec les paramètres d'impression du fichier Excel que j'ai partagé ?

Comme ça si 40 lignes > que la hauteur Max, faire un saut de page toutes les 39 lignes.

D'avance merci.

Bonjour Vicent_SL7, le fil, le forum,

Le nombre de lignes est un facteur ... mais la hauteur des lignes influence aussi ... les marges ... les marges d'en-têtes et de pied de page ... restriction du nombre de pages ... et j'en oublie certainement ...

C'est tout un ensemble qu'il faut mettre à notre main ...

ric

Bonjour Ric,

Merci de votre retour.

Vous pouvez vous fier au fichier Excel que j'ai partagé à l'ouverture de ce sujet.

Ce fichier a les mêmes paramètres d'impression/mise en page que le fichier d'origine.

Bonjour Vincent_SL7,

Si personne d’autre ne passe avant ... tu es le 3e dans la file d’attente ... prends une chaise pour ne pas avoir mal aux jambes ... 3 ou 4 jours minimum ...

Ce sont des trucs auxquels je ne suis pas habitué et ma santé m’a passablement ralenti ...

Je ne t’oublie pas ...

ric

Bonjour Vincent_SL7,

En prenant copie ... j'ai jeté un coup d'œil rapide ...

Perso ... je ne travaillerais pas avec les sauts de page ... mais avec le nombre de lignes à imprimer et le nombre de pages ...

Sheets(1).PageSetup.FitToPagesTall

"Centrer sur la page Horizontalement" ... pour une meilleure apparence ...

ric

Re à tous,

j'ai trouvé la solution, j'avais un soucis de ZOOM trop élevé.

environ un : PageSetup.zoom = 50

Alors que je devais faire un zoom plus petit (PageSetup.Zoom = 34)

Merci à tous ceux qui ont pris la peine de répondre et de m'aider !

Rechercher des sujets similaires à "retirer sauts pages automatiques vba"