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 :

Comptage des sauts de page erronné


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut Comptage des sauts de page erronné
    Bonjour,

    j'ai une feuille Excel qui contient:
    - Des tableaux de dimension fixe, avec un saut de page à la fin de chacun d'entre eux
    - Un tableau de dimension variable, construit dynamiquement, qui prend plus d'une page.

    En fin de construction de ce tableau, je définis la zone d'impression, puis je tente de situer le saut de page (automatique) généré par Excel, pour le positionner là où je veux.

    Mon problème est que le comptage des sauts de page ne prend en compte que les 3 sauts définis manuellement dans le classeur, et ne "voit pas" celui qui a été généré automatiquement par Excel (qui est pourtant ben et bien visible sur l'onglet concerné)

    quelqu'un aurait il une idée?

    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
    For i = 350 To 1000
            cellule_active = "B" & i
            ligne_de_fin = i
    		Range(cellule_active).Select
            If ActiveCell.Value = "Fin" Then
                ligne_de_fin = i
                Exit For
            Else
                ligne_de_fin = 0
            End If
        Next i
        If ligne_de_fin > 0 Then
            zone_impr = "A1:L" & ligne_de_fin
            ActiveSheet.PageSetup.PrintArea = zone_impr
        Else
            MsgBox "Fin de zone d'impression non définie, fermez le fichier sans enregistrer"
            Exit Function
        End If
        For i = 1 To nombre_saut_page
            MsgBox "Saut:" & i & " ligne: " & ActiveSheet.HPageBreaks(i).Location.Row
        Next i

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Question bête, réponse idiote:
    Les autres ne sont pas des saut de pages.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut
    Les autres sont des sauts de page insérés "manuellement" dans le classeur
    Seul le dernier est un saut de page "automatique", généré par Excel car le tableau dynamique est trop grand pour tenir sur une page

    Il s'agit donc bien, dans les deux cas, de "sauts de pages"

    Cordialement

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Ce n'est pas un saut de page mais comme tu as l'air de savoir que ça en est un, bon courage pour le trouver avec ta méthode!

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut
    Ce n'est pas la peine de "persifler"... Si je pose la question sur le forum, c'est que je suis bloqué.
    Si ce n'est pas un saut de page, comme tu le dis, il serait je pense plus constructif (pour moi comme pour les éventuels autres personnes concernées) d'expliquer en quoi, pour toi, ce n'en est pas un, et, plutôt que "de me souhaiter bonne chance avec ma méthode", en suggérer une qui marche, ce qui est, je te le rappelle, ma demande initiale.

    Pour moi, bêtement, un trait pointillé à l'écran qui fait que, lors de l'impression, Excel passe à la page suivante, je considère ça comme un saut de page, mais si en réalité c'est une fausse impression, je serais très heureux de l'apprendre, au moins, je me coucherais moins bête ce soir

    Cordialement

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    J'aime bien quand on me fait passer pour un con

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub compter()
    for each sautpage in worksheets(1).hpagebreaks
    If sautpage.Extent = xlpagebreakfull Then
    plein = plein + 1
    else
    partiel = partiel+ 1
    end if
    next
    MsgBox plein & " plein écran, " & partiel & " impressions"
    End Sub

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveSheet.ResetAllPageBreaks
        ActiveSheet.PageSetup.PrintArea = zone_impr
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut
    Merci, mais j'ai malgré tout une question

    La fonction ActiveSheet.ResetAllPageBreaks ne va-t-elle pas supprimer mes sauts de page "standard", que je n'ai pas forcément envie de recréer à chaque fois?

    Par ailleurs, je viens de découvrir quelque chose de bizarre...

    Si je fais un aperçu avant impression de mon fichier, et que je me déplace jusqu'à la fin (c'est à dire jusqu'au saut de page en cause), et que je relance ma fonction ensuite.... eh bien là elle voit bien mon saut de page!!!!
    Je me demande si finalement ce ne serait pas lié à un "recalcul des sauts de pages" qui serait nécessaire entre la création du tableau dynamique, l'ajustement de la zone d'impression, et la détection des sauts de page..... mais si c'est le cas, je ne sais pas comment faire

    Merci Engueengue pour ton code
    Je viens de l'essayer, toujours sur mon classeur avec 3 "sauts de page créés manuellement" et 1 "passage à la page pour cause de tableau trop grand"...

    Le résultat est:
    1 plein écran, 2 impressions

    et, pour en revenir à ma dernière constatation, si je refais tourner le code après avoir fait un aperçu avant impression, le résultat est;
    1 plein cran, 3 impressions

    Donc, même si je ne comprend pas bien la différence entre le "plein écran" et le "impression", on a bien toujours le même souci qui est qu'il ne voit pas le dernier tant qu'on a pas fait un aperçu avant impression, postérieur à la définition de la zone d'impression!!!

+ 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. [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
  3. Etat: Forcer des saut de page
    Par Zuthos dans le forum IHM
    Réponses: 2
    Dernier message: 18/03/2008, 16h16
  4. Aperçu des sauts de page
    Par LaPanic dans le forum Excel
    Réponses: 4
    Dernier message: 12/09/2007, 18h47
  5. [CSS] inserer des sauts de pages
    Par MicroPuce dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 19/04/2007, 12h01

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