Bonjour,
Je cherche à réaliser une mise en page en fonction du nombre de ligne par page.
Sachant que d'après mes marges la hauteur total des lignes ne doit pas dépasser 551,25 si dans ma page il y a 21 lignes cela donne une hauteur de ligne égale à 26,25
J'utilise la fonction Round(calcul,2) pour avoir une valeur de hauteur de ligne le plus précis possible et accepté par la fonction RowHeight
Le problème est que je n'arrive pas à faire une boucle qui garde le numéro de la ligne de la première cellule et donc je n'arrive pas à déterminer le nombre de ligne dont la valeur de la colonne A est identique.
Pour exemple dans la colonne A il y a le nom de la catégorie et dans la colonne B le nom de la personne appartenant à cette catégorie
Disons que la première catégorie va de la ligne 2 à la ligne 11 (soit 10 lignes) et la deuxième catégorie de la ligne 12 à la ligne 32 (soit 20 lignes)
Comment faire une boucle pour sélectionner les lignes de 2 à 11 puis de 12 à 32 et ainsi de suite sur 2000 lignes
Voici mon code avec une inconnue que j'ai nommé "b", "b" étant la première ligne de la nouvelle catégorie :
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Sub mepcc() ' efface tous les sauts de page Cells.Select ActiveSheet.ResetAllPageBreaks ' insère les sauts de page entre chaques classes For x = 2 To 2200 If Cells(x, 1).Value = Cells(x + 1, 1).Value Then GoTo suivant Else Cells(x + 1, 1).Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell suivant: Next x Range("A1").Select For x = 2 To 2200 If Cells(x, 1).Value = Cells(x + 1, 1).Value Then a = a + 1 Else hauteur = Round(551, 25 / (a - b), 2) ' a-b représente le nombre de ligne Rows(b, a).Select Selection.RowHeight = hauteur Next x End Sub
Si il y a une autre façon de faire avec la fonction While je suis preneur
Partager