vba saut de page

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
 

patricktoulon

XLDnaute Barbatruc
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
 

n.serres

XLDnaute Nouveau
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 .
 

fanch55

XLDnaute Barbatruc
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 ....
 

patricktoulon

XLDnaute Barbatruc
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
 

n.serres

XLDnaute Nouveau
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
 

Nicos

XLDnaute Occasionnel
Supporter XLD
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
 

Discussions similaires

Statistiques des forums

Discussions
312 272
Messages
2 086 689
Membres
103 372
dernier inscrit
BibiCh