• Initiateur de la discussion Initiateur de la discussion n.serres
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

n.serres

XLDnaute Nouveau
Bonjour,
j aimerai trouver code VBA (je débute) pour mettre une bordure inférieur sur une plage de cellule au dessus du saut de page .
exemple zone d impression (e1 : j60 ) premier saut de page en e20 donc mettre une bordure inférieur (e19:j19)
deuxième saut de page en e28 mettre une bordure en (e27:j27) ect ...
merci pour vos solutions
 
Bonsoir
un exemple
VB:
Sub test()
    Dim saut As HPageBreak
    For Each saut In ActiveSheet.HPageBreaks
        With Range("E" & saut.Location.Row - 1).Resize(, [E1:J60].Columns.Count)
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlEdgeBottom).Weight = 4
            .Borders(xlEdgeBottom).Color = vbRed
        End With
    Next
End Sub
 
Bonjour,
merci de votre réponse , cela marche bien , j ai juste un petit problème sur la dernière page en impression la dernière ligne n a pas de de bordure inférieur , je comprend pourquoi ce n est plus un saut de page .
toute les cellules de mon tableau on des formules je n ai pas réussi a trouver la solution pour bordurer cette dernière ligne si vous avez une solution je suis preneur . j ai chercher pour trouver la dernière cellule non vide en partant du bas mais comme il y a des formules dans les cellules, elles ne sont pas considérées comme vide.
j' espère que mon problème est compréhensif .
 
Bonjour,
Pour un tableau simple qui commence en colonne E :
VB:
    Dim Lcell As Range
    Set Lcell = Columns("E").Find("*", , xlFormulas, , , xlPrevious)
    msgbox "dernière ligne :" & Lcell.row
Pour un tableau structuré qui commence en colonne B :
Code:
    Dim Lr As Long
    Lr = [Tableau1].Row + [Tableau1].Rows.Count - 1
    MsgBox "dernière ligne :" & Lr

Mais vous risquez d'imprimer plus de pages que nécessaire ....
 
Bonjour
VB:
Sub test()
Dim saut As HPageBreak
For Each saut In ActiveSheet.HPageBreaks
With Range("E" & saut.Location.Row - 1).Resize(, [E1:J60].Columns.Count)
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = 4
.Borders(xlEdgeBottom).Color = vbRed
End With
Next
with activesheet.[E60:J60]
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = 4
.Borders(xlEdgeBottom).Color = vbRed
End With

End Sub
 
Je souhaite trouver les sauts de page sur une zone d impression et mettre une bordure inferieur sur la ligne au dessus du saut de page voici le code VBA
Dim saut As HPageBreak
For Each saut In ActiveSheet.HPageBreaks
With Range("E" & saut.Location.Row - 1).Resize(, [E1:i900].Columns.Count)
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = 2
.Borders(xlEdgeBottom).Color = vbBlack
End With
Next
Range("a17").Select
End Sub
 
Re,
quelque chose comme ça, d'après ce que j'ai compris.
VB:
Sub Macro1()
Dim deb As Integer
Dim col_deb As Integer
Dim col_fin As Integer
Dim interval As Integer

With ActiveSheet
deb = 19
col_deb = 5
col_fin = 10
interval = 9
For i = 1 To 100
.Range("E" & deb, "J" & deb).Borders(xlEdgeBottom).LineStyle = xlContinuous
.HPageBreaks.Add .Range("E" & deb, "J" & deb)
.VPageBreaks.Add .Range("E" & deb, "J" & deb)
deb = deb + interval
Next i
End With
End Sub

Je l'ai fait comme ça pour que vous comprenez le principe, à voir
A tester sur le principe
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
106
Réponses
19
Affichages
1 K
Réponses
16
Affichages
1 K
Retour