mmm, alors, ca serait pour moi
je compterais combien j'ai de ligne sur ma page (avec un truc du genre)
derlgn = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
j'enleverai tout les saut de pages (pour éviter de cumuler ceux fait par la macro précédente et ceux qu'on va faire) (avec un code sur base de ca )
ActiveSheet.ResetAllPageBreaks
Ensuite, je ferai une boucle (du genre
for i = nombre to derligne
et a la place de nombre, si le début du document est formaté autrement, tu met le début du premier bloc. S'il n'y a pas de formatage différent)
Je ferait un if ou je vérifie si la ligne est cachée (un code du genre)
1 2
| if Rows(i).Hidden then
end if |
Si oui, je ne fais rien, sinon, j'incrémente de 1 un compteur (comme ca, on ne compte que les lignes visible)
Je vérifie aussi si je suis au début d'un bloc avec un if (pour ca je vérifie)
if (cells(i -2,x) = cells(i-1 ,x)) and (cells(i-1 ,x) ="") then
Si c'est le cas, je met i dans une variable (pour savoir ou a commencé le dernier bloc)
Et ensuite, je referais un if pour tester si mon compteur est égal a un certain nombre (ton nombre de ligne max par page) et si c'est le ca, j'insere un page break au dessus de la ligne qu'on a stocké dans la variable comme étant le début du dernier bloc
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Rows(variable)
voila, essaye avec ca et s'il y a un probleme, dis nous ou ca bloque
Partager