Mise en page via macro

Fermé
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 8 avril 2024 - 12 févr. 2016 à 21:24
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 13 févr. 2016 à 20:03
Bonjour,

Bonjour,

ce n'est pas évident à expliquer mon problème.
alors je vous ai mis ci-joint mon tableau:
http://www.cjoint.com/c/FBmt6kORNvw

je souhaiterais imprimer toutes les pages via VBA
par contre ce que je voudrais que en haut de chaque page
que ça ne commence pas par le (CODEBARRE)
mais que ça commence par la (ville) et le (code)
et en fin de chaque page
je voudrais que ça se termine par le (CODEBARRE)
mais pas la (ville) ni le (code)


par exemple sur la page 1 ce qui ne va pas c'est en bas de page
la page devrait se terminer à la ligne 23 et pas 24
la page deux devrait commencer par la ligne 24 et se terminer par la ligne 45 et pas 46

Est t'il possible de le faire via macro?


A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
13 févr. 2016 à 20:03
Bonsoir
A tester. N'ayant pas d'imprimante, je n'ai pas pu vérifier l'impression, ça nécessitera peut-être quelques petits ajustements.
Option Compare Text

Sub ImprimFiche()
    Dim DerLig As Integer
    Application.ScreenUpdating = False
    Sheets("CAB etiquettes").Select    
Debut:
    DerLig = [A10000].End(xlUp).Row
    CptSautPage = ActiveSheet.HPageBreaks.Count
    On Error Resume Next
    ReDim Position(CptSautPage)
    ReDim Lig(CptSautPage)
    '*** relevé de l'adresse de chaque haut de page ******
    For i = 1 To CptSautPage
        Lig(i) = ActiveSheet.HPageBreaks.Item(i).Location.Cells.Row
        If Range(ActiveSheet.HPageBreaks.Item(i).Location.Cells.Address).Value = "" And Cells(Lig(i) + 1, 1) = "" Then GoTo SelectionImpression
        Position(i) = ActiveSheet.HPageBreaks.Item(i).Location.Cells.Address
        Range(Position(i)).Select        
InsertionDeLignes:
        If ActiveCell.Value = "CODEBARRE" Then
            ActiveCell.Offset(-1, 0).Activate
            ActiveCell.EntireRow.Insert Shift:=xlDown
            '** si il y a eu une insertion de ligne, alors on recommence tout ****************
            GoTo Debut
         End If
    Next i    
SelectionImpression:
    Range("A1:B" & [A10000].End(xlUp).Row).Select
    Selection.PrintOut Copies:=1, Collate:=True
End Sub

Cdlt
0