Bonjour à tous !!
Afin de faciliter la mise en forme de fichiers Excel, j'ai essayé de créer une macro sous Excel avec mes notions de débutante.
Mon projet est le suivant: J'ai crée une boucle pour supprimer tous les sauts de pages et intégrer des nouveaux sauts toutes les 60 lignes, jusqu'à la fin de mon tableau. Je ne souhaites pas avoir de sauts de page après la dernière ligne utilisée. L'ajout des bordures est pour l'impression car ces dernières disparaissent lors de l'aperçu avant impression.
Pour cela:
- je déclare une variable "Dern_Saut_Page" qui récupère la dernière ligne utilisée
- la condition d'application de la boucle est la différence entre la "Dern_Saut_Page" et la ligne du saut de page à intégrer. Si elle est négative, on est en dessous du tableau.
Mon problème avec la boucle suivante est qu'un dernier saut de page est crée et surtout les bordures apparaissent en dessous du tableau. Comment procéder, s'il vous plait, pour ne pas créer ce dernier saut de page??
Je vous remercie par avance de votre aide.
Voici le code de ma macro:
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
25
26
27
28
29
30
31 Sub MEF_DETAIL() 'Mettre en forme la page "DETAIL" Dim h As Integer Dim Dern_Saut_Page As Integer Sheets("DETAIL").Select 'Supprimer tous les sauts de pages automatiques Sheets("DETAIL").ResetAllPageBreaks ' Insérer des sauts de page toutes les 60 lignes h = 60 Dern_Saut_Page = Range("A" & Rows.Count).End(xlUp).Row [A9].Select Do While (Dern_Saut_Page - ActiveCell.Offset(h - 1, 0).Row) > 0 'MsgBox (Dern_Saut_Page - ActiveCell.Offset(h - 1, 0).Row) ActiveCell.Offset(h, 0).Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell ActiveCell.Offset(h - 1, 0).Borders(xlEdgeBottom).LineStyle = xlContinuous ActiveCell.Offset(h - 1, 1).Borders(xlEdgeBottom).LineStyle = xlContinuous ActiveCell.Offset(h - 1, 2).Borders(xlEdgeBottom).LineStyle = xlContinuous ActiveCell.Offset(h - 1, 3).Borders(xlEdgeBottom).LineStyle = xlContinuous ActiveCell.Offset(h - 1, 4).Borders(xlEdgeBottom).LineStyle = xlContinuous Loop Range("A1").Select End Sub
Partager