nombre de lignes par page

  • Initiateur de la discussion Initiateur de la discussion Johanne
  • 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 !

J

Johanne

Guest
Bonjour,

J'aimerais savoir s'il existe un code VBA pour obliger Excel à imprimer seulement 54 lignes par page et ensuite d'en créer une nouvelle.

Le nombre de lignes dans mon document varient d'une fois à l'autre. Des fois, je peux en avoir 1500 et d'autres 3500.

merci
 
Bonjour Pascal, Johanne

On fait comme d'hab Pascal Toi tu as l'info et moi je fais Monsieur Plus !! lol


Voici la même méthode mais avec nettoyage des éventuels Pages Breaks résiduel ... (car sinon ils ne se nettoient pas)

Sub InsertPageBreakEvery54()
Dim L As Long, i As Long
Dim WS As Worksheet
Dim PB As HPageBreak

Application.ScreenUpdating = False
Set WS = ActiveSheet
L = WS.Range("A65536").End(xlUp).Row

On Error Resume Next
For Each PB In WS.HPageBreaks
PB.Delete
Next

For i = 55 To L Step 54
WS.HPageBreaks.Add Cells(i, 1)
Next

Application.ScreenUpdating = True
End Sub

PS on accélère aussi la procédure sans Update Screen, car même si il n'y a pas de sélection, Excel met à jour l'écran, sur 3500 lignes ça peut compter...

Bonne journée
@+Thierry
 
Merci beaucoup à tout le monde.

J'ai suivi la méthode de @+Thierry avec une modification. Le nettoyage des sauts de page ne fonctionnait pas, alors je l'ai remplacé par:
Cells.Select
ActiveSheet.ResetAllPageBreaks

Et tout fonctionne bien.

Encore une fois... merci beaucoup
 
Bonjour Chris, Pascal, Johan, le Forum

Juste pour information et éclaircissement Johann, quand tu dis "Le nettoyage des sauts de page ne fonctionnait pas"... Es-tu sous Excel 97 pour avoir besoin de cette Selection de Cells ?

Par avance merci.
@+Thierry
 
Non, je suis sur Excel XP. Même avec Excel 2000, ça ne fonctionnait pas.

J'ignore pourquoi.

J'ai intégré ton code à une macro existante qui copie un ensemble de lignes d'une feuille à l'autre.

Donc à chaque fois que j'active la macro, ça copie les lignes, enlève les sauts de page et en insère de nouveau.

Voici le code que j'ai:

Dim contenuCellule As String
Sheets("Matrice").Select
Rows("2:28").Select
Range("A28").Activate
selection.Copy
Sheets("Données").Select
Rows("2:2").Select
selection.Insert Shift:=xlDown
contenuCellule = ""
Range("M1").Select
ActiveCell.Select
contenuCellule = ActiveCell
Range("b2").Select
ActiveCell = contenuCellule
Run ("ClearClipboard")
Range("b8").Select
Run ("InsertPageBreakEvery54")
'MsgBox (nbfiche)
Dim L As Long, i As Long
Dim WS As Worksheet
Dim PB As HPageBreak

Application.ScreenUpdating = False
Set WS = ActiveSheet
L = WS.Range("A65536").End(xlUp).Row

Cells.Select
ActiveSheet.ResetAllPageBreaks
'On Error Resume Next
'For Each PB In WS.HPageBreaks
'PB.Delete
'Next

For i = 54 To L Step 54
WS.HPageBreaks.Add Cells(i, 1)
Next

Application.ScreenUpdating = True
 
J'ai encore besoin de votre aide.

La personne pour qui j'ai fait le fichier travaille avec Excel 97.

Excel se semble pas vous reconnaître la ligne de code suivante:
WS.HPageBreaks.Add Cells(i, 1)

Nous avons exécuter la macro étape par étape et le saut de page ne veut pas s'insérer. C'est comme si Excel ignorait l'action à faire avec cette ligne de code.

Est-ce normal?
 
Bonjour Johanne, le Forum

C'est tout à fait par hazard que je tombe sur ta dernière question que j'avais zappée, sorry.

Excel 97, et bien dans les 3/4 des cas où ça plante c'est due au fait qu'il faut sélectionner la Feuille et une Cellule avant toute opération. Comme je vois que tu as l'air de travailler sur plusieurs feuilles, pense à faire la sélection (Sheets("TheSheetWithHPageBreaks").Select... Et ptet même ensuite Range("A1").Select...

Vu tous ces Select (arrf Vadérétro Select LOL!!), tu peux optimiser en ajoutant "Application.ScreenUpdating = False" en début de macro en rétablissant à False en fin de macro...

Bonne Semaine
@+Thierry
 
Thierry

C'est tout aussi par hazard que je tombe sur ta réponse.

Si la personne qui utilise le fichier me revient et me demander de modifier le fichier, je vais en profiter pour essayer ton code.

Pour l'instant, le fichier semble bien fonctionné, car ça fait des mois que j'en ai pas eu de nouvelle.

Merci
 
Bonjour le fil

Je me permets de mettre un petit grain de sel vu que j'avais participé au fil.

Johanne je suis mort de rire quend je lis "C'est tout aussi par hazard que je tombe sur ta réponse."

Disons plutôt : "Suite à une gentille petite remontrance de Jean-Marie (chti160) Lien supprimé j'ai repris mes anciens fils pour y donner une réponse."

Allez bonne journée

Pascal
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Réponses
13
Affichages
749
Retour