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

VBA Word Discussion :

Suppression saut de section continu


Sujet :

VBA Word

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 32
    Points
    32
    Par défaut Suppression saut de section continu
    Bonjour,

    Je dois mettre en forme des documents RTF à partir de macro VBA.

    Dans ce document, j'ai des sauts de page, des sauts de section continu et page suivante.

    J'aimerai supprimer les sauts de section continus pour conserver l'orientation portrait ou paysage de mon document (grâce aux sauts de section page suivante).

    Ce qui m'embête, c'est qu'à part rechercher et remplacer ^b par rien, je n'ai pas d'idée.

    Savez vous détecter les sauts de section continus ?

    Merci d'avance

    Cordialement.

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Qu'est-ce qu'un saut de section continu?
    Un saut de section dont le texte s'écrit à la suite du reste.

    Une possibilité serait de prendre la page du saut de section et la comparer avec celle du carctère suivant.
    Si c'est la même, alors on a un saut de section continu, sinon c'est un autre saut de section.
    Problème : Comment identifier le saut de section continu comme dernier caractère d'une page?

    Deuxième possibilité, regarder dans la section suivante le type du début de la section.

    Je mets les deux solutions même si la deuxième est nettement mieux à mon avis
    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
     la comparaison des pages
     
    Sub testfind()
     
    Dim pageprec As Long, pagesuiv As Long
    Selection.HomeKey unit:=wdStory
    With ActiveDocument.Content.Find
       .ClearFormatting
    Do While .Execute(findText:="^b", Forward:=True) = True
    .Parent.Select
     
    'Comparaison page précédente et page suivante
    pageprec = Selection.Information(wdActiveEndPageNumber)
        Selection.GoTo what:=wdGoToSection, which:=wdGoToNext
        pagesuiv = Selection.Information(wdActiveEndPageNumber)
    If pagesuiv - pageprec = 0 Then
    MsgBox "saut de section continu"
    Else: MsgBox "autre saut de section"
    End If
    Loop
    End With
    End Sub
     
    Ou le type de début de la section 
     
    Sub testfind()
     
    Dim pageprec As Long, pagesuiv As Long
    Selection.HomeKey unit:=wdStory
    With ActiveDocument.Content.Find
       .ClearFormatting
    Do While .Execute(findText:="^b", Forward:=True) = True
    .Parent.Select
        Selection.GoTo what:=wdGoToSection, which:=wdGoToNext
     
    'Type du début de la section
    If Selection.Sections(1).PageSetup.SectionStart = wdSectionContinuous Then
    MsgBox "saut de section continu"
    Else: MsgBox "autre saut de section"
    End If
    Loop
    End With
    End Sub
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut Driks,

    Non, oublie tout ça. Dans le modèle des objets Word, tu dispose des sections et des informations sur elles, utilise-les avec un simple code VBA comme celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        For aI = 1 To ActiveDocument.Sections.Count
            If ActiveDocument.Sections(aI).PageSetup.SectionStart = wdSectionContinuous Then
                MsgBox "Il y a une section avec un saut continu"
            End If
        Next
    @+

  4. #4
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour Sepia,

    Exact, j'ai tellement cherché à reprendre la partie qu'il avait utilisé soit la recherche du saut de section que j'en ai oublié de travailler avec les sections tout simplement.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 32
    Points
    32
    Par défaut
    Bonjour et merci pour vos réponses,

    Ayant regardé la structure des fichiers RTF en entrée, le problème est un peu différent.

    Ce que je veux faire se présente comme suit.

    Pour chaque section, si la section courante a une orientation identique à la section d'après, je supprime le saut de section.
    Sinon, je laisse le saut de section.

    Désolé mais je galère un peu en VBA, j'ai du mal à trouver de l'aide en ligne sur ce genre de problème.

    Merci d'avance de votre aide.

  6. #6
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Qu'est-ce que tu veux dire par orientation identique (Portrait et Paysage)?
    Si tel est le cas, regardes la propriété orientation et une comparaison de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF ActiveDocument.Sections(aI).PageSetup.orientation=ActiveDocument.Sections(aI+1).PageSetup.orientation then 
    msgbox "même orientation"
    else msgbox "orientation différente"
    Attention du coup le parcours doit s'effectuer jusqu'au nombre de sections moins une.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par carden752 Voir le message
    Bonjour,

    Qu'est-ce que tu veux dire par orientation identique (Portrait et Paysage)?
    Si tel est le cas, regardes la propriété orientation et une comparaison de ce style
    Oui l'orientation effectivement. Il y a d'autres orientations ?

    Citation Envoyé par carden752 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF ActiveDocument.Sections(aI).PageSetup.orientation=ActiveDocument.Sections(aI+1).PageSetup.orientation then 
    msgbox "même orientation"
    else msgbox "orientation différente"
    Attention du coup le parcours doit s'effectuer jusqu'au nombre de sections moins une.
    C'est un peu sale, mais voilà mon code, qui marche :

    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
    Dim i As Integer
    Dim j As Integer
    Dim tot As Integer
    i = 1
    j = 2
     
     
    For Each Section In ActiveDocument.Sections
            tot = ActiveDocument.Sections.Count
            If i = tot Then
                GoTo fin
            End If
            If ActiveDocument.Sections(i).PageSetup.Orientation = ActiveDocument.Sections(j).PageSetup.Orientation Then
               If ActiveDocument.Sections(i).PageSetup.SectionStart = wdSectionContinuous Or ActiveDocument.Sections(i).PageSetup.SectionStart = wdSectionNewPage Then
               Selection.Find.ClearFormatting
               Selection.Find.Replacement.ClearFormatting
                    With Selection.Find
                        .Text = "^b"
                        .Replacement.Text = "^p"
                        .Forward = True
                        .Wrap = wdFindStop
                        .Format = False
                        .MatchCase = False
                        .MatchWholeWord = False
                        .MatchWildcards = False
                        .MatchSoundsLike = False
                        .MatchAllWordForms = False
                    End With
                    With Selection
                        If .Find.Forward = True Then
                            .Collapse Direction:=wdCollapseStart
                        Else
                            .Collapse Direction:=wdCollapseEnd
                        End If
                        .Find.Execute Replace:=wdReplaceOne
                        If .Find.Forward = True Then
                            .Collapse Direction:=wdCollapseEnd
                        Else
                            .Collapse Direction:=wdCollapseStart
                        End If
                        .Find.Execute
                    End With
               End If
            Else
                Selection.MoveDown Unit:=wdLine, Count:=2
                i = i + 1
                j = j + 1
            End If
     
        Next Section
    fin:
    Merci à tous, je passe le topic en

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

Discussions similaires

  1. [WD-2010] Saut de section continue et pagination
    Par Lucorah dans le forum Word
    Réponses: 3
    Dernier message: 29/11/2013, 11h29
  2. [WD-2003] Problème de sauts de section (continu)
    Par jeanpierre78 dans le forum Word
    Réponses: 3
    Dernier message: 25/12/2012, 11h57
  3. Réponses: 7
    Dernier message: 05/05/2011, 08h23
  4. [DOM] Problème de suppression sauts de lignes après modification XML
    Par chabada dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 15/06/2005, 13h46
  5. [Crystal Report] Suppression d'une section
    Par franck.cvitrans dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 04/03/2005, 11h39

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