Evènement pour reconduire les entêtes de tableaux
Bonjour,
J'aimerais faire un évènement en vba qui détecte les ruptures de pages (saut de page) et reconduit les entêtes de mes tableaux si le tableau dépasse la rupture de page, c'est-à-dire s'il dépasse sur une autre page. J'ai fait une macro pour cela, mais je n'arrive pas à faire un évènement avec celle-ci.
Sub reconduitentete2(t As ListObject)
' Vérifie si le tableau déborde sur la page suivante en vérifiant si la dernière ligne est après la rupture de page
If t.Range.Rows.Count > 1 And t.Range.Rows(t.Range.Rows.Count).PageBreak <> xlPageBreakNone Then
' Si la condition est vérifiée, reconduit l'entête du tableau en copiant et collant les cellules de l'entête sur la page suivante
Dim entetePrincipale As Range
If t = ThisWorkbook.Worksheets("Feuille1").ListObjects("Tableau31") Then
Set entetePrincipale = ThisWorkbook.Worksheets("Feuille1").ListObjects("Tableau30").HeaderRowRange
Else
Set entetePrincipale = t.HeaderRowRange
End If
Dim enteteSuivante As Range
Set enteteSuivante = t.Range.Rows(t.Range.Rows.Count)
' Copie les valeurs de l'entête principale sur l'entête suivante
entetePrincipale.Copy
enteteSuivante.PasteSpecial xlPasteValues
' Applique un fond identitique à l'entête principale
enteteSuivante.Interior.Color = entetePrincipale.Interior.Color
' Applique une taille de police identique à celle de l'entête principale à l'entête suivante
enteteSuivante.Font.Size = entetePrincipale.Font.Size
'Applique texte centré et en gras de l'entete
enteteSuivante.Font.Bold = True
enteteSuivante.HorizontalAlignment = xlCenter
' Ajuste la dimension des cellules de l'en-tête suivante pour correspondre à celle de l'en-tête principale
enteteSuivante.RowHeight = entetePrincipale.RowHeight
enteteSuivante.ColumnWidth = entetePrincipale.ColumnWidth
End If
End SubJe ne peux pas utiliser l'option "Titre imprimer" car en fait je ne peux pas prévoir à l'avance sur quelles pages mes tableaux dépasseront puisque ce sont des tableaux auxquels l'utilisateur peut ajouter ou supprimer des lignes à sa convenance via des boutons que j'ai créés à cet effet. Mes tableaux peuvent donc être plus ou moins grands donc être sur plusieurs pages ou pas. C'est pourquoi je voulais faire un évènement qui détecterait si mon tableau est sur plusieurs pages et reconduirait son entête dans ce cas, je ne veux pas que mes entêtes de tableaux soient reconduits sur toutes les pages.
bonjour Specimane, BrunoM45,
je ne dis pas que c'est stupide ce que vous faites là, mais si ce n'est que pour imprimer, créer autant de feuilles nouvelles que le nombre de pages à imprimer et copiez+collez l'entête et une partie du tableau, puis lancer l'imprimante et puis supprimez ces nouvelles pages.
La macro sera à peu prêt la même que le vôtre.
Vous pouvez mettre un fichier en PJ, si nécessaire ... .
merci pour vos réponses @BsAlv, @BrunoM45 , j’ai réussi à régler mon problème
Bonjour Specimane,
Ne soyez pas égoïste, si vous avez trouvez la solution,
il serait sympa de la partager ici au cas ou quelqu'un d'autre aurait le même besoin
Par avance merci.
