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