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

Word Discussion :

qu'est-ce qu'une page blanche en word ?


Sujet :

Word

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 29
    Points
    29
    Par défaut qu'est-ce qu'une page blanche en word ?
    bonsoir,

    j'avais entendu dire qu'il n'y a pas de notion de page en vba word. A ma grande surprise j'ai trouvé un programme qui traite des pages word.
    j'ai un peu bricolé le code, mon but étant de tester si une page est vide au sens vide de texte "normal", en dehors des retours à la ligne, de la numérotation et tous autres textes de gestion.
    ça se passe dans Item(NoLine).Range.Text ou je ne sais pas reconnaître si le texte est "normal". c'est surement une propriété à tester mais laquelle ?

    merci de votre aide.

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     
    Function test_page_vide()
     
     
    Dim oPages  As Pages
        Dim NoPage  As Long
        Dim oRects  As Rectangles
        Dim NoRect  As Long
        Dim oLines  As Lines
        Dim NoLine  As Long
     
        With ActiveDocument.ActiveWindow.Panes(1)
            Set oPages = .Pages
            With oPages
                For NoPage = 1 To .Count
                    'MsgBox ("Page " & NoPage & " : ")
                    'Debug.Print "Page " & NoPage & " : ";
     
                    With .Item(NoPage)
                        Set oRects = .Rectangles
                        With oRects
                            For NoRect = 1 To .Count
                                'MsgBox ("Page " & NoPage & " ; " & "Rectangle " & NoRect & " ; ")
                                Debug.Print , "Rectangle " & NoRect & " : ";
                                With .Item(NoRect)
                                    Select Case .RectangleType
                                        Case WdRectangleType.wdLineBetweenColumnRectangle
                                            Debug.Print "ligne qui sépare des colonnes"
                                        Case WdRectangleType.wdMarkupRectangle
                                            Debug.Print "bulle de commentaires"
                                        Case WdRectangleType.wdMarkupRectangleButton
                                            Debug.Print "indicateur (...) dans bulle de commentaires quand existe texte supplémentaire dans commentaire"
                                        Case WdRectangleType.wdPageBorderRectangle
                                            Debug.Print "bordure de page"
                                        Case WdRectangleType.wdSelection
                                            Debug.Print "espace occupé par un outil de sélection"
                                        Case WdRectangleType.wdShapeRectangle
                                            Debug.Print "espace occupé par une forme"
                                        Case WdRectangleType.wdSystem
                                            Debug.Print "(système) réservé"
                                        Case WdRectangleType.wdTextRectangle
                                            'MsgBox ("Page " & NoPage & " ; " & "Rectangle " & NoRect & " ; texte")
                                            Set oLines = .Lines
                                            With oLines
                                                Debug.Print "espace occupé par du texte : " & .Count & " lignes :"
                                                'MsgBox ("nbre lignes texte = " & oLines.Count)
                                                If .Count = 0 Then
                                                    'MsgBox ("Page " & NoPage & " ; " & "Rectangle " & NoRect & " ; page vide de texte")
     
                                                End If
     
                                                For NoLine = 1 To .Count
                                                    MsgBox .Item(NoLine).Type
     
                                                    MsgBox ("Page " & NoPage & " ; " & _
                                                            "Rectangle " & NoRect & _
                                                            " ; texte" & _
                                                            "Ligne " & NoLine & " : " & .Item(NoLine).Range.Text)
                                                    'Debug.Print , , "Ligne " & NoLine & " : " & Len(.Item(NoLine).Range.Text) & " caractère(s)"
     
                                                Next NoLine
                                            End With
                                    End Select
                                End With
                            Next NoRect
                        End With
                    End With
                Next NoPage
            End With
        End With
    End Function

  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
    Bonjour,

    Une page dans Word, ce n'est pas fixe. Cela varie en fonction des marges, des polices et des tailles de caractères et même du pilote d'imprimante. Il suffit que tu changes une petite valeur, ou que tu déplaces une image, pour tout changer. Là, tu utilises une macro qui se base sur une page affichée à l'écran, dans la fenêtre que Word réserve à ce document. Word a beau être WYSIWYG; tu n'as aucune certitude que c'est exactement une page imprimée, même si cela correspond la plupart du temps.

    Et puis là ton rectangle de texte contient du texte. Déjà, en partant, les marques de paragraphes font partie du texte; ainsi que les espaces. Et puis, j'ai eu beau fouiller dans MSDN. je n'ai rien vu qui permette de compter le nombre de caractères dans un rectangle de ta macro.

    Et puis, voilà tous les types de caractères que tu peux atteindre dans un document Word:

    Nom : Caractères.png
Affichages : 140
Taille : 59,4 Ko


    À mon avis, tu n'auras jamais d'information fiable avec cette macro-là. C'est uniquement utilisable à des fins cosmétiques. Une macro pour le contenant et absolument pas pour le contenu.
    À 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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 27
    Points : 29
    Points
    29
    Par défaut page blanche pour édition
    merci clementmarcotte de cette mise au point et des types de caractères possible. je ne sais même pas comment faire pour afficher ces caractères !
    je reviens donc au pourquoi de ma question qui est de ne pas numéroter les pages laissées volontairement blanche pour un livre. il y a bien la méthode des sections mais ça parait un peu ardu quand il y a beaucoup de pages blanches. je débute en word et VBA

Discussions similaires

  1. une page blanche est affichée sous firefox
    Par bousnguar dans le forum JSF
    Réponses: 6
    Dernier message: 01/12/2008, 17h37
  2. [CR] Générer une page blanche pour imprimer en recto-verso
    Par PasHyperPon dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 02/04/2006, 19h06
  3. CR10 : insérer une page blanche sur les ruptures pages paire
    Par speed034 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 07/09/2005, 18h09
  4. Internet Explorer m'affiche une page blanche
    Par poof65 dans le forum IE
    Réponses: 10
    Dernier message: 15/08/2005, 22h50
  5. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26

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