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 :

Insérer marque de paragraphe avant texte en gras


Sujet :

VBA Word

  1. #1
    Invité(e)
    Invité(e)
    Par défaut Insérer marque de paragraphe avant texte en gras
    Bonjour à tous,

    J'ai un petit souci.

    je suis vraiment débutant en VBA et je suis confronté à un problème particulier que je n'arrive pas à résoudre.

    J'ai un fichier texte Word 2003 qui comporte des mots en style gras et en style normal.

    je souhaite faire une macro qui
    LIGNE pae LIGNE

    va insérer après le 1er ":" et AVANT le mot ou le 1er mot des mots en gras (consécutifs) des autres expression de mon texte (celà peut être une expression tout en gras constituée de plusieurs mots), une marque de paragraphe.

    Exemple pour la 1ère ligne :

    gris : c'est une couleur Le bleu foncé : en est une autre, le noir : encore une autre

    Où là il faudrait insérer un marque de paragraphe avant le groupe de mots "le bleu foncé :" et avant le mot "le noir :"

    pour obtenir :

    gris : c'est une couleur.
    Le bleu foncé : en est une autre,
    le noir : encore une autre

    En fait cela revient à dire qu'il ne faut qu'une seule fois le ":" par ligne. la marque de paragraphe se mettant après au début de chaque mot ou expression en gras.

    J'ai commencé à faire ceci, mais après, je bute...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Selection.Find  
        .ClearFormatting  
        .Text = ""  
        .MatchWildcards = False  
        .Forward = True  
        .Font.Bold = 1  
     End With
    J'espère ne pas trop vous importuner avec cette question et vous remercie d'avance pour votre indulgence face au grand débutant que je suis.

    Bonne journée à vous, Arnaud
    Dernière modification par Heureux-oli ; 02/05/2010 à 09h50.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Quelques explications !
    La fonction recherche et remplacement en fonctionnera pas dans ton cas.
    Il faut passer en revue tous les mots du texte pour faire quelques tests.
    Le premier est de déterminer si le mot est en gras, si c'est le cas, on ajoute un paragraphe.
    Le problème est que dans ce cas, la marque de paragraphe sera ajoutée devant tous les mots en gras.
    Il faut donc utiliser un booléen qui basculera au premier mot pas en gras du texte pour signaler que la série des mots en gras est terminée.
    Tant que l'on reste dans la série, on n'ajoute pas de paragraphe.

    Essaie ce 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
    Sub AjouterParaGras()
    Dim secondmotPasG As Boolean
    Dim myWD
     
    For Each myWD In ActiveDocument.Words
    'sélection du mot
    myWD.Select
    'Si le second mot est en gras
    If secondmotPasG Then
     
    'Test si le mot est en gras
    If Selection.Font.Bold Then
    Selection.InsertBefore vbCrLf
    'Comme le mot est en gras, on bascule le booléen
    secondmotPasG = False
     
    End If
    Else
    'Si le mot suivant n'est pas en gras : fin de la série
    If Not Selection.Font.Bold Then
    secondmotPasG = True
    End If
    End If
     
     
    Next myWD
     
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Quelques explications !
    La fonction recherche et remplacement en fonctionnera pas dans ton cas.
    Il faut passer en revue tous les mots du texte pour faire quelques tests.
    Le premier est de déterminer si le mot est en gras, si c'est le cas, on ajoute un paragraphe.
    Le problème est que dans ce cas, la marque de paragraphe sera ajoutée devant tous les mots en gras.
    Il faut donc utiliser un booléen qui basculera au premier mot pas en gras du texte pour signaler que la série des mots en gras est terminée.
    Tant que l'on reste dans la série, on n'ajoute pas de paragraphe.

    Essaie ce 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
    Sub AjouterParaGras()
    Dim secondmotPasG As Boolean
    Dim myWD
     
    For Each myWD In ActiveDocument.Words
    'sélection du mot
    myWD.Select
    'Si le second mot est en gras
    If secondmotPasG Then
     
    'Test si le mot est en gras
    If Selection.Font.Bold Then
    Selection.InsertBefore vbCrLf
    'Comme le mot est en gras, on bascule le booléen
    secondmotPasG = False
     
    End If
    Else
    'Si le mot suivant n'est pas en gras : fin de la série
    If Not Selection.Font.Bold Then
    secondmotPasG = True
    End If
    End If
     
     
    Next myWD
     
    End Sub
    MERCI, MERCI beaucoup !!!!

    çà marche impeccable !!! C'est super !!! Vraiment un très grand merci pour ton aide !!!
    Merci aussi à ceux qui ont réflechi au problème. Merci à vous tous !

    Un très grand MERCI Heureux !!!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Retaité aéronautique
    Inscrit en
    Avril 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retaité aéronautique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2013
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Insérer marque de paragraphe avant texte en gras
    Bonjour à vous tous et plus particulièrement à toi Heureux Oli.
    Je viens de trouver ta solution pour les marques de paragraphe et je dois dire que cela fonctionne parfaitement dans la mise en forme de mes fiches.
    Encore un grand merci pour ton travail et le fait que nous puissions, nous humbles manipulateurs d'Office, utiliser tes vastes connaissances.
    Cordialement.

Discussions similaires

  1. [CSS]text en gras
    Par maroweb dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 28/05/2006, 18h56
  2. [VBA-E] Recherche des textes en Gras
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/05/2006, 11h54
  3. [Automation Word] Texte en Gras
    Par uskiki85 dans le forum Access
    Réponses: 1
    Dernier message: 07/10/2005, 21h51
  4. [XSL] Text en gras!
    Par Sniper37 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/07/2005, 09h50

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