Sauts de page conditionnels (Microsoft Excel)
Excel est un outil pratique pour garder une trace de toutes sortes de données. De nombreuses personnes l’utilisent au travail pour créer des rapports ad hoc pour différents départements ou projets. Lorsque vous travaillez avec vos données, vous vous demandez peut-être comment insérer automatiquement des sauts de page lorsque le contenu d’une certaine colonne change. Par exemple, vous pouvez avoir une colonne qui contient des noms de département et vous pouvez souhaiter que chaque département commence sur une nouvelle page.
C’est assez facile à faire avec la fonction de sous-totaux intégrée d’Excel.
Tout ce que vous avez à faire est de suivre ces étapes:
-
Assurez-vous que votre tableau contient des étiquettes de colonne. Par exemple, si la colonne A contient les noms de département, la cellule A1 peut contenir une étiquette telle que « Département ». Assurez-vous que toutes les colonnes ont des étiquettes.
-
Triez les données de votre tableau en utilisant la colonne de service comme clé.
-
Avec n’importe quelle cellule du tableau toujours sélectionnée, choisissez Sous-totaux dans le menu Données. Excel affiche la boîte de dialogue Sous-totaux.
-
À l’aide de la liste déroulante À chaque changement, sélectionnez Service.
-
À l’aide de la liste déroulante Utiliser la fonction, sélectionnez Nombre.
-
À l’aide de la liste Ajouter un sous-total à, sélectionnez le nom de la colonne dans laquelle vous souhaitez que votre sous-total apparaisse.
-
Assurez-vous que la case à cocher Saut de page entre les groupes est activée.
-
Cliquez sur OK. Excel ajoute les sous-totaux et la page compte, comme indiqué.
Si, pour une raison quelconque, vous ne souhaitez pas utiliser la fonctionnalité Sous-totaux, vous pouvez toujours écrire une macro qui supprimera tous les sauts de page de votre feuille de calcul, puis ajoutez de nouveaux sauts de page aux endroits appropriés. La macro suivante fera l’affaire:
Sub PageBreak() Dim CellRange As Range Dim TestCell As Range ActiveSheet.ResetAllPageBreaks Set CellRange = Selection For Each TestCell In CellRange If TestCell.Value <> TestCell.Offset(-1, 0).Value Then ActiveSheet.Rows(TestCell.Row).PageBreak = xlPageBreakManual End If Next TestCell End Sub
Pour utiliser la macro, sélectionnez simplement les cellules que vous souhaitez utiliser comme clé pour effectuer les fractionnements, moins la cellule du haut. Par exemple, si les départements sont dans la colonne A, lignes 2 à 37, vous sélectionnez la plage de A3 à A37. Exécutez la macro, et tous les anciens sauts de page sont supprimés et de nouveaux ajoutés.
Vous devez savoir qu’Excel a une limite en ce qui concerne le nombre de sauts de page manuels pouvant être utilisés dans une feuille de calcul. Selon la base de connaissances, cette limite est d’environ 1024 pauses. (La limite peut varier légèrement en fonction de la version d’Excel que vous utilisez, mais se situe juste autour de ce point.) Voici la description obscure de la limite:
http://support.microsoft.com/kb/284916
Le résultat de cette limite est que si vous avez pas mal de sauts de page à insérer, la macro se bloque lorsque la limite de saut de page est dépassée sur la feuille de calcul. L’erreur indiquera quelque chose du genre « Impossible de définir la propriété PageBreak ».
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2792) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Conditional_Page_Breaks [Sauts de page conditionnels]
.