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 :

VBA Word - modifier la mise en page de certaines lignes


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut VBA Word - modifier la mise en page de certaines lignes
    Bonjour,

    je débute avec les macro Word (j'ai déjà une bonne connaissance en VBA pour excel ...), j'essaye de faire quelque chose qui me semble simple mais impossible de le faire : le résultat de la macro n'est pas ce que je souhaite.

    exemple un word de 50 pages pleine de descriptions pour chaque description il y a :
    - un titre utilisant le Style 'titre2'
    - une première ligne indiquant le sous-titre et le nom, formaté "Titre n - nom du sous-titre"
    - le détail sur plusieurs paragraphe et lignes

    Pour info tout le texte autre que les titres, est en Police Georgia 9 en italique normal.

    je voudrait mettre en valeur cette ligne de sous-titre sans utiliser de style et l'automatiser sur tout le document
    voici mon code :
    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
     
    Sub MEPTitre(chaine As String, Police As String, Taille As Integer, Gras As Boolean, Italique As Boolean, Wildcards As Boolean)
     
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = chaine
            With .Replacement
                .Font.Bold = Gras
                .Font.Italic = Italique
                .Font.Size = Taille
                .Font.Name = Police
            End With
            .ParagraphFormat.SpaceAfter = 6
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = Wildcards
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub
     
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    '
        Call MEPTitre("Titre ? - *", "Times New Roman", 12, True, False, True)
    End Sub
    Quand je lance Macro1 : sur toutes les lignes sous-titre, j'ai bien "Titre x -" qui est en Times New Roman, en bold et plus d'italique, mais la suite de la ligne n'a pas été modifiée, c'est juste un mot avant la fin de paragraphe et l'ajout de 6 point après chaque ligne ne se fait pas.

    Est-ce que quelqu'un peut m'aider à résoudre l'anomalie => je ne sais pas si ce sont les options du find/replace ou ma chaine de recherche ou les 2 qui sont erronés ?

    Merci
    Alain

  2. #2
    Membre éclairé Avatar de Souriane
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2009
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2009
    Messages : 541
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Voici un code que j'ai fabriqué plutôt rapidement. Il suffirait de l'adapter pour aller avec votre première macro pour pouvoir passer les variables.

    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
    Sub Macro()
     
        selection.HomeKey Unit:=wdStory
     
        With selection
     
            With .Find
                .Text = "^13Titre ([0-9]{1;3}) - " 'Ici, ça va chercher «Titre 1 -» mais aussi «Titre 999 -»
                'Le «^13» c'est pour s'assurer qu'il recherche uniquement si c'est au début d'une ligne.  Si c'est au milieu d'un texte, il ne le formatera pas
                .Forward = True
                .Wrap = wdFindStop
                .MatchWildcards = True
                .Execute
            End With
     
            Do While .Find.Found 'Va exécuter ce qui suit uniquement s'il a trouvé une occurrence
                selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend 'Sélectionne le titre en entier
     
                With selection.ParagraphFormat
                    .SpaceBefore = 6
                End With
     
                With selection.Font
                    .Name = "Times New Roman"
                    .Size = 12
                    .Bold = True
                    .Italic = True
                End With
                selection.MoveRight Unit:=wdCharacter, Count:=1
     
                .EndKey Unit:=wdLine
                .Find.Execute   'Recherche la prochaine occurence.
            Loop 'Va à la prochaine occurence, sinon, sort du Loop
        End With
     
    End Sub


    Bonne journnée!

    Souriane
    __________________________________
    Une question bien posée est à moitié résolue!

    Merci de ne pas oublier de mettre RÉSOLU quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Bonjour,
    Merci ça fonctionne nickel

    Cordialement,
    Alain

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

Discussions similaires

  1. Pb include qui modifie ma mise en page
    Par Lolie11 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 14
    Dernier message: 21/05/2007, 10h49
  2. [VBA-Word]Modifier la police d'un mot dans tout le doc
    Par conconbrr dans le forum VBA Word
    Réponses: 6
    Dernier message: 21/07/2006, 14h17
  3. Réponses: 2
    Dernier message: 11/04/2006, 19h09
  4. [JTextArea] Modifier la mise en page d'un mot unique
    Par minus dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 03/04/2006, 15h43
  5. [VBA][Word] débutant suppression d'une page
    Par cyrcroix dans le forum VBA Word
    Réponses: 3
    Dernier message: 30/12/2005, 19h22

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