Ordre des pages avec saut VBA

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

demongin

XLDnaute Nouveau
Bonjour la communauté,

Je rencontre une petite bizarerie avec une partie de mon code.
Je permet à l'utilisateur via des boutons d'afficher ou masquer des plages de cellules formant des pages A4 pour l'impression.
J'ai donc créé des macros en se sens et pour chaque cas de figure, j'ai automatisé la mise à jour des zones d'impressions comme des sauts de page.

Tout fonctionne à merveille, sauf que dans un cas de figure, l'ordre des pages ne suit plus la logique, c'est à dire ici, de gauche à droite et haut en bas.
Rien de rédhibitoire en soi, car il suffirait de remettre les pages dans l'ordre après l'impression.

Cela se présente ainsi :
- il y a 6 pages,
- fonctionnant 2 par 2,
- 4 sur un même niveau, 2 autres en dessous.

Je devrais donc obtenir cela :
[ 1 - 2 ] [ 3 - 4 ]
[ 5 - 6 ]

Or j'obtiens :
[ 3 - 4 ] [ 5 - 6 ]
[ 1 - 2 ]

et dans les cas suivants, pas de pb :
[ 1 - 2 ] [ 3 - 4 ]
ou :
[ 1 - 2 ]
[ 3 - 4 ]
ou encore seulement :
[ 1 - 2 ]

Y a t-il un ordre à respecter dans la désignation des sauts de page, ou même entre colonne et ligne ?
Ce phénomène me laisse pantois....!

Ci-dessous le code de ma macro Saut de Pages (SDP) ;
Il est long car le principe énoncé dans le premier post est reproduit sur de nombreuses pages, mais sans qu'il y ait de problème sur ces dernières.
Le soucis se produit uniquement sur la plage A79 - GJ201.

Code:
Sub SautDePage()
'
' Saut De Page Macro
' Macro enregistrÈe le 22/06/2010 
' Touche de raccourci du clavier: Ctrl+w
'

    ActiveSheet.Unprotect Password:="good"

'Bloque le recalcul automatique ‡ chacune des opÈration
    Application.Calculation = xlCalculationManual
    
'Fige l'Ècran pendant l'exÈcution des macros en arriËre plan
    Application.ScreenUpdating = False

'Supprime tous les sauts de page (pas ceux dÈlimitÈs par la zone d'impression)
    ActiveSheet.ResetAllPageBreaks

'Met en place du saut de page vertical
    ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=Columns(49)

'Met en place des sauts de page de la partie sous-traitant sans rÈvision
    If Range("CS2").Value = "0" And Range("CS3").Value = "1" Then
      ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=Columns(97)
      ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=Columns(145)
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(265)
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(327)
    End If
 
'Met en place du saut de page 2 conditions : rÈvision + sous traitants
    If Range("CS2").Value = "1" And Range("CS3").Value = "1" Then
      ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=Columns(97)
      ActiveWindow.SelectedSheets.VPageBreaks.Add Before:=Columns(145)
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(265)
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(327)
    End If
 
'Met en place des sauts de page de la partie dqe
    
  If Range("Av5").Value = "2" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
  ElseIf Range("Av5").Value = "3" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
  ElseIf Range("Av5").Value = "4" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
  ElseIf Range("Av5").Value = "5" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
  ElseIf Range("Av5").Value = "6" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
  ElseIf Range("Av5").Value = "7" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
  ElseIf Range("Av5").Value = "8" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
  ElseIf Range("Av5").Value = "9" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
  ElseIf Range("Av5").Value = "10" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
  ElseIf Range("Av5").Value = "11" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
  ElseIf Range("Av5").Value = "12" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
  ElseIf Range("Av5").Value = "13" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
  ElseIf Range("Av5").Value = "14" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(843)
  ElseIf Range("Av5").Value = "15" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(843)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(781)
  ElseIf Range("Av5").Value = "16" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(843)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(781)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(719)
  ElseIf Range("Av5").Value = "17" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(843)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(781)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(719)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(657)
  ElseIf Range("Av5").Value = "18" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(843)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(781)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(719)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(657)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(595)
  ElseIf Range("Av5").Value = "19" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(843)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(781)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(719)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(657)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(595)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(533)
  ElseIf Range("Av5").Value = "20" Then
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1587)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1525)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1463)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1401)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1339)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1277)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1215)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1153)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1091)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1029)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(967)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(905)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(843)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(781)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(719)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(657)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(595)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(533)
    ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(471)
  End If

'Met en place du saut de page de la partie avenant 1 ‡ 2
    If Range("CS4").Value = "2" Then
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1649)
    End If

'Met en place du saut de page de la partie avenant 1 ‡ 5
    If Range("CS4").Value = "1" Then
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1649)
      ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(1711)
    End If

'LibËre l'Ècran aprËs l'exÈcution des macros en arriËre plan
    Application.ScreenUpdating = True

'DÈbloque le recalcul automatique ‡ chacune des opÈration
    Application.Calculation = xlCalculationAutomatic
    
    ActiveSheet.Protect Password:="good", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    
    Range("A1").Select

End Sub


Merci encore pour l'aide que vous êtes susceptible de m'apporter.
 
Re : Ordre des pages avec saut VBA

Bonjour demongin,

Je n'ai jamais vu ça, pas de piste pour t'aider
Mais évite les fils en double...

https://www.excel-downloads.com/threads/ordre-des-pages-avec-saut-vba.144799/

Merci,

Mille excuses,j'ai du faire une erreur de manip en revenant sur la page.
J'ai effacé le texte du message et le titre du fil pour qu'un modo puisse le supprimer rapidement.

Sinon, pour mon soucis, je n'ai toujours rien trouvé ; c'est incompréhensible...
 
Re : Ordre des pages avec saut VBA

Bonjour,

As-tu l'option 'à droite puis vers le bas' cochée dans l'assistant mise en page onglet 'Feuille'?

Ou par VBA
Code:
ActiveSheet.PageSetUp.Order = xlOverThenDown

Sinon l'impression vas de haut en bas PUIS de gauche à droite.
A+
 
Re : Ordre des pages avec saut VBA

Re,
@Tototiti, moi non plus pas sûr d'avoir tout compris🙄.

De toutes façons dans excel il n'y a que 2 options, celle mentionnée plus haut ou 'xlDownThenOver'.

Si cela ne vient ni de l'une ni de l'autre, c'est que la vérité est ailleurs comme dirait Mulder😀 'Gestionnaire d'impression!?'

A+
 
Re : Ordre des pages avec saut VBA

Re,

J'aimerai bien vous faire une impression écran, mais sur PC je ne sais pas faire.
Il y a bien une touche "Imp écr", mais il ne se passe rien.

Quand au fichier, il fait presque 2 Mo, donc je ne peux pas le joindre ici.
 
Re : Ordre des pages avec saut VBA

Re,

Oui, bonne idée, des propriétés tordues cochées sur l'imprimante peut-être.

Si c'est possible, un bon essai serait peut-être d'essayer d'imprimer sur une autre imprimante

Je ne pense pas que cela puisse venir de là, car hormis ce cas de figure, tous les autres indiques un ordre de page correct.

Cela se vérifie aussi avec l'aperçu avant impression.

J'ai toutefois vérifier les propriétés du drivers d'impression et j'ai aussi choisie une autre imprimante, mais résultat identique.
 
Re : Ordre des pages avec saut VBA

J'ai une bonne nouvelle ! J'ai trouvé d'où venait le problème.
Le soucis provenait de l'ordre des plages de zone d'impression !
Cela interfère vraisemblablement avec les sauts de page.
Mes plages sont obtenues séparément par le biais de condition et sont ensuite concactenées.

L'ordre normal attendu est le suivant et je vais ajouter la notion de thème pour le cas de figure posant problème :
Page 1 & 2 => Base
Page 3 & 4 => Sous Traitant
Page 4 & 6 => Révision
Page 7, 8, .... => Sous Traitant (suite)

Pourquoi j'introduis cette notion de thème : parce que je gère effectivement les choses par thème et la partie sous traitant comporte plusieurs plages distinctes répartie dans la Feuille.

Avant que je rajoute une nouvelle plage Sous Traitant (Page normalement en position 3 & 4), l'ordre des plages concacténé était le suivant :
Base ; Révision ; Sous Traitant (donc pages 5, 6, 7...)​

Après, cela donnait :
Base ; Révision ; Sous Traitant (idéalement, pages en position 3 & 4 + 7, 8, 9 ...)​

Du coup, sans pour autant qu'il y ait une logique avec l'ordre des pages affiché, lorsque la zone d'impression de ce qui devrait être les pages 3 & 4 de la partie sous traitant est traitée, la zone se situe alors en amont de la précédente (en haut, à droite) - un retour en arrière qui créé à priori un conflit.

J'ai donc revu la concactenation des plages pour que l'ordre chronologique soit respecté :
Cela donne :
Base ; Sous Traitant ; Révision ; Sous Traitant (suite).​

Je ne suis pas sûr d'avoir été clair, alors ce qu'il faut retenir, c'est que l'adjonction de plusieurs zones d'impression doit se faire dans l'ordre chronologique, de gauche à droite puis de haut en bas.

Merci à tous pour votre aide. 🙂
 
- 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
Retour