[Excel 2002] Saut de page à chaque sous-total

Fermé
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 - 5 oct. 2012 à 16:17
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 8 oct. 2012 à 13:16
Bonjour,

j'ai un souci pour faire des sauts de pages à chaque sous-total dans mes données.

Je passe par une macro VBA, dans laquelle je dis supprimer les sauts de page automatiques
ActiveSheet.DisplayAutomaticPageBreaks = False
, et ensuite je fais mes sous totaux sur mes données, et je demande un saut de page à chaque sous-total :
Selection.Subtotal GroupBy :=3, function:=xlSum, TotalList:=Array(13), Replace:=True, PageBreaks:=True, SuymmaryBelowData:=True


Il semblerait que les sauts de pages automatiques sont encore actifs malgré le code pour les déscativer.

Quelqu'un pourrait-il m'aider à enlever ces satanés sauts automatiques ?

Merci d'avance !

Cordialement.

A voir également:

2 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
5 oct. 2012 à 17:14
Finalement j'ai réussi à résoudre mon problème, mais le soucis est que dès lors que je clique n'importe où sur mon document, les sauts de pages définis disparaissent ! Comment faire pour que ceux-ci restent définis jusqu'à la fermeture du classeur ?

Merci d'avance !
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié par eriiic le 5/10/2012 à 17:24
Bonjour,

ActiveSheet.DisplayAutomaticPageBreaks = False
A mon avis ne concerne que l'affichage des sauts de page automatiques.
Je ne pense pas que tu puisses les supprimer, il faut mettre suffisamment de saut de page manuels (au bout de x lignes maxi) pour éviter leur insertion.

Une idée : tu pourrais balayer les lignes en interrogeant la propriété .PageBreak de la ligne.
En retour tu obtiens xlPageBreakAutomatic ou xlPageBreakManual ou xlPageBreakNone.
A toi de voir où introduire un saut de page manuel à un endroit judicieux (pour la lecture, éviter les lignes orpheline ) au-dessus des sauts de page automatiques.

eric

PS: si tu avais un fichier exemple pour voir...

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
8 oct. 2012 à 11:29
Salut chossette9,

je viens de voir qu'on avait écrit exactement en même temps, tu n'as pas dû voir ma réponse.
Quand à ta nouvelle question, si elle est toujours d'actualité, il faudrait le code que tu as mis.

eric
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
8 oct. 2012 à 11:41
Merci pour ton aide eriiic, j'ai finalement réussi à résoudre mon souci en m'inspirant de la première partie de ta réponse :
- j'ai fait le code suivant pour sélectionner l'aperçu des sauts de page, supprimer les sauts de pages définis et j'ai déplacé le saut de page automatique. Puis j'ai pu insérer mes sauts de pages
Activewindow.selectedsheets.Printpreview
Activesheet.ResetallpageBreaks
Activesheet.HpageBreaks(1).DragOff Direction:=xlDown, IndexRegion:=1


La première ligne permet d'afficher l'apperçu avant impression. pour pouvoir visualiser l'aperçu des sauts de page, il me faut appuyer sur un bouton.
Sais-tu comment dire en VBA qu'il faut appuyer sur le bouton 'Page Break Preview' (en anglais car je travaille sur Excel 2002 en anglais) ?

Merci d'avance !
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
8 oct. 2012 à 13:16
Re,

Si j'ai bien compris :
Dim sh As Worksheet
For Each sh In ActiveWindow.SelectedSheets
    sh.DisplayPageBreaks = True
Next sh

A+
eric
0