problème de mise en page

grisan29

XLDnaute Accro
bonjour a vous tous

tout d'abord je suis passer de xp a windows8 mais rester avec office 2010

bon j'ai le code suivant qui placé dans thisworkbook et qui me fait office de saut de page, le bas de page est en commentaire car il a été mis dans la mise en page des entetes
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean) 'Utilis & Chr(10) &
Dim VPB As VPageBreak, HPB As HPageBreak
Dim No As String, Dt As String
 
Application.ScreenUpdating = False
 
'No = Year(Now) & " - " & Sheets("facturation").Range("A1")
Dt = Format(Date, "dd mmmm yyyy")

'formatter en vue d'impression
With ActiveSheet
    'reset parametres d'impression
    .ResetAllPageBreaks
    With .PageSetup
        'redefinition de la plage d'impression
        .PrintArea = "$C$1:$M$" & [MTTC].Row + 13
        .CenterHeader = ""
        .CenterFooter = ""
    End With
    'passage en break preview sinon erreur avec DragOff
    ActiveWindow.View = xlPageBreakPreview
    'déplacement des sauts de page
    For Each VPB In .VPageBreaks
        VPB.DragOff Direction:=xlToRight, RegionIndex:=1
    Next VPB
    'retour à vue normale
    ActiveWindow.View = xlNormalView
    'ajout de ligne avant et après chaque saut de page pour délimiter le cadre lors de l'impression
    For Each HPB In .HPageBreaks
        .Range(.Cells(HPB.Location.Row - 1, 3), .Cells(HPB.Location.Row - 1, 12)).Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Range(.Cells(HPB.Location.Row, 3), .Cells(HPB.Location.Row, 12)).Borders(xlEdgeTop).LineStyle = xlContinuous
    Next HPB
    'entête au centre
    '.PageSetup.CenterHeader = "&14&""Arial,Gras""FACTURE SAV N° " & No & " en date du " & Dt
    'pied de page au centre
    '.PageSetup.CenterFooter = "&14&""SIRET : 000000000   -   NAF : 00000   -   RCS : 00000 -   N° TVA   :  FR00000000000" & Chr(10) & _
  '"assurance décennale n°000000000 de chez untel"
End With

Application.ScreenUpdating = True

End Sub

donc ce code fonctionne parfaitement lors d'ajout de ligne l'une après l'autre mais je fait évoluer mon fichier et ce code ne correspond plus car les données arrivent en paquet c'est a dire plusieurs lignes a la fois (2 autant que 150)
voila en quoi cela me pose un souci
également les bordures s'inscrivaient au fur et a mesure et la problème
tous c'est problèmes sont insurmontable a mon faible niveau en vba
je joint un fichier pour mieux comprendre

cdlt

Pascalm
 

grisan29

XLDnaute Accro
Re : problème de mise en page

bonjour a vous
j'ai trouvé ceci pour le bordurage mais rien pour la mise en page

Code:
Sub bordure()
With Sheets("commande")
 L = .Range("A65536").End(xlUp).Row
   If L < 12 Then lig = 12
 'Formatage du tableau
     

    .Cells(12, "A").Borders(xlEdgeLeft).LineStyle = xlContinuous
    '.Range(.Cells(12, "I"), .Cells(L, "P")).Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Range(.Cells(12, "I"), .Cells(L, "P")).Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Range(.Cells(12, "A"), .Cells(L, "G")).Borders(xlEdgeTop).LineStyle = xlNone
    .Range(.Cells(12, "I"), .Cells(L, "J")).Borders(xlEdgeTop).LineStyle = xlNone
    .Range(.Cells(12, "A"), .Cells(L, "J")).Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Range(.Cells(12, "I"), .Cells(L, "J")).Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Range(.Cells(12, "D"), .Cells(L, "H")).Borders(xlInsideVertical).LineStyle = xlNone
    .Range(.Cells(12, "C"), .Cells(L, "K")).Borders(xlInsideVertical).LineStyle = xlContinuous
    .Range(.Cells(12, "I"), .Cells(L, "J")).VerticalAlignment = xlCenter
    .Range(.Cells(12, "D"), .Cells(L, "G")).VerticalAlignment = xlCenter
    End With
End Sub
j'avais déjà ce code mais j'ai remplacer le 1er L par 12 et cela me semble bon jusque mainrtenant

Pascal
 

Discussions similaires

Réponses
10
Affichages
366

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch