IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

ActiveSheet.HPageBreaks.Add Before: sans résultat


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2023
    Messages : 11
    Par défaut ActiveSheet.HPageBreaks.Add Before: sans résultat
    Bonjour,
    J'essaye sans succès, par VBA, de fixer un saut de page à une ligne déterminée de ma feuille de calcul, après avoir défini sa mise en page (ActiveSheet.PageSetup.PrintArea).
    Dans l'exemple joint, la mise en Page "naturelle" du saut de page est avant la ligne 73. Je souhaite la mettre avant la ligne 71.
    Mon code ne modifie pas la ligne d esaut de page.
    Voir la pièce jointe "230509-CréationDéparts-TestImpression"; Bouton "Mise en page" qui appelle la Sub MiseenpageFeuilledeTravail()
    Merci d'avance
    Bertrand Meunier230509-CréationDéparts-TestImpression.xlsm

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 406
    Par défaut
    Bonjour,

    Ceci devrait le faire:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Option Explicit
     
    Sub MiseenpageFeuilledeTravail()
        Dim LesInscrits As Integer
        Dim LeQuota As Integer
        Dim NomGolf As String
        Dim DateCompét As String
        Dim LigneFin As Long
     
        Sheets("FeuilleAImprimerJoueurs").Select
        LesInscrits = Cells(1, 15)
        LeQuota = Cells(2, 15)
        NomGolf = Cells(4, 15)
        DateCompét = Cells(5, 15)
        LigneFin = Range("I" & Rows.Count).End(xlUp).Row
     
    'Mise en page
        With ActiveSheet.PageSetup
            .PrintArea = "$B1:$K" & LigneFin
            .PrintTitleRows = "$1:$1"
            .PrintTitleColumns = ""
            .LeftHeader = "Amicale 44"
            .CenterHeader = "Les inscriptions"
            .RightHeader = "Pour " & NomGolf & " le " & DateCompét
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = "&P / &N"
            .LeftMargin = Application.CentimetersToPoints(1)
            .RightMargin = Application.CentimetersToPoints(1)
            .TopMargin = Application.CentimetersToPoints(1.6)
            .BottomMargin = Application.CentimetersToPoints(1)
            .HeaderMargin = Application.CentimetersToPoints(1)
            .FooterMargin = Application.CentimetersToPoints(0.6)
            .FitToPagesWide = 1
            .FitToPagesTall = False
        End With
     
    'Sauts de page forcés
        ActiveSheet.ResetAllPageBreaks
        ClubPageBreak 1
     
        Range("A2").Select
        ActiveWindow.View = xlPageBreakPreview
    End Sub
     
    Sub ClubPageBreak(i As Integer)
        Dim kR As Long
        If i > ActiveSheet.HPageBreaks.Count Then Exit Sub
        kR = ActiveSheet.HPageBreaks(i).Location.Row
        Debug.Print i, ActiveSheet.HPageBreaks(i).Location.Row
        While IsNumeric(Range("A" & kR))    '--- tant que n° indiqué en colonne A
            kR = kR - 1
        Wend
        With ActiveSheet
            .HPageBreaks.Add .Rows(kR)
        End With
        Debug.Print i, ActiveSheet.HPageBreaks(i).Location.Row
        ClubPageBreak i + 1
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2023
    Messages : 11
    Par défaut ActiveSheet.HPageBreaks.Add Before: sans résultat
    Bonjour EricDgn,

    Je vous remercie de votre solution.
    J'ai testé et cela fonctionne parfaitement.
    Cordialement.
    Bertrand Meunier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Modifier user agent avec ActiveSheet.QueryTables.Add
    Par Emmanuel CHALLO dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/02/2017, 15h11
  2. VBS, Excel, ActiveSheet.QueryTables.Add
    Par weedlili dans le forum VBScript
    Réponses: 1
    Dernier message: 10/05/2011, 15h00
  3. Importer données avec la commande With ActiveSheet.QueryTables.Add
    Par hbc87 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/05/2010, 05h14
  4. Réponses: 2
    Dernier message: 06/01/2010, 18h32
  5. Erreur 1004 pendant le 20° Sheets.Add Before
    Par jldancet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2008, 08h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo