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 :

VBA - Gestion des Sauts de Page [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut VBA - Gestion des Sauts de Page
    Bonjour tout le monde,

    Je développe en VBA sous Excel un bout de programme qui met un forme un fichier .XLS, pas besoin de rentrer dans les détails.

    Une fois mis en forme, je dois le sauver en .PDF.

    Pour que le fichier PDF soit "beau", je dois gérer les sauts de page, et pour cela je dois tester un a un tous les sauts de page automatique (pour voir si il ne se situe pas dans une cellule fusionnée mais ce n'est pas important).

    Pour cela, je scrute tous les sauts de page de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim HPB As HPageBreak
        For Each HPB In ActiveSheet.HPageBreaks
            'Traitement
        Next HPB
    Ce code marche très bien lorsque que j'ai qu'un seul saut de page à gérer, mais lorsque que j'en ai plusieurs, j'obtiens l'erreur "L'indice n'appartient pas à la sélection" à la ligne For Each HPB In ActiveSheet.HPageBreaks.

    Quelqu'un a une idée de comment scruter tous les sauts de page ?

    J'ai également essayer de les scruter manuellement, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set HPB1 = ActiveSheet.HPageBreaks(1)
    Set HPB2 = ActiveSheet.HPageBreaks(2)
    Mais encore une fois, le premier fonctionne très bien, mais le deuxième... même erreur.

    Help

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    En tout cas, quand je regarde dans l'aide de VBA pour Excel 2010, je constate très rapidement que PageBreak est une propriété de l'objet Range et absolument pas une propriété de l'objet Worksheet.

    En principe, cela devrait réveiller quelqu'un.


    Et puis Excel 2010 peut enregistrer directement au format pdf.

    Sinon, toujours dans l'aide VBA, c'est soit ExportAsFixedFormat, ou saveas. Cela devrait marcher avec un des deux.

    P.S. Je ne me suis pas donné la peine de répondre sur les deux forums, et je ne le ferai pas non plus.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre émérite
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Points : 2 684
    Points
    2 684
    Par défaut
    Bonjour BibiLellow

    Déplacer les sauts de pages en fonction de cellules fusionnées.

    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
    Sub SautDePageCellulesFusionnees()
     'par Docmarti 2014/05/13
     
        Dim PremiereLigneDeLaPageSuivante As Object
     
        Dim f As Worksheet
     
        Dim ProchainNumeroPageBreak As Long
     
        Dim Ligne As Long
     
        Set f = ThisWorkbook.ActiveSheet
     
        ActiveWindow.View = xlPageBreakPreview
     
        f.ResetAllPageBreaks
     
        ProchainNumeroPageBreak = 1
     
        While ProchainNumeroPageBreak <= f.HPageBreaks.Count
     
            Set PremiereLigneDeLaPageSuivante = f.HPageBreaks(ProchainNumeroPageBreak).Location
     
            Ligne = PremiereLigneDeLaPageSuivante.Row
     
            If f.Cells(Ligne, 1).Value = "" And f.Cells(Ligne, 1).MergeCells = True Then
     
                While f.Cells(Ligne, 1).Value = ""
     
                    Ligne = Ligne - 1
     
                Wend
     
                Set f.HPageBreaks(ProchainNumeroPageBreak).Location = f.Cells(Ligne, 1)
     
            End If
     
            ProchainNumeroPageBreak = ProchainNumeroPageBreak + 1
     
        Wend
     
    End Sub
    Cordialement

    Docmarti.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    PARFAIT ! J'ai eu besoin de juste faire une ou 2 petites modif pour adapter à mon code et c'est exactement ce dont j'avais besoin.

    Tu me sauves la vie à 2 jours de la fin de mon stage

    Merci beaucoup,

    Cordialement

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

Discussions similaires

  1. [iText] Gestion des sauts de pages.
    Par schtroumpf_farceur dans le forum Documents
    Réponses: 12
    Dernier message: 02/03/2016, 10h18
  2. PROC REPORT : Gestion des sauts de page
    Par Marie33 dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 07/03/2011, 11h01
  3. [Toutes versions] comment coder en vba des sauts de page sous word
    Par xixeme dans le forum VBA Word
    Réponses: 1
    Dernier message: 28/03/2009, 00h35
  4. [phpToPDF] Gestion des sauts de page
    Par Christophe Charron dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 18/06/2008, 14h02
  5. [Struts] Droits d'un user et gestion des accès aux pages
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/04/2004, 11h30

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