Création macro vb rechercher/remplacer

Signaler
Messages postés
13
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
26 février 2009
-
Messages postés
13
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
26 février 2009
-
Bonjour à tous,
Je dois actuellement créer une macro en VB sous word qui recherche un style défini dans mon doc(appellons le le style "question") et rajoute une balise avant cette question ( "//QUESTION\").

Voici mon protocole:
1) J'appuie sur Enregistrer une macro
2) Je presse Ctrl + H pour acceder à "rechercher/remplacer par"
3) Je selectionne mon style question, ainsi que ce que je veux remplacer ("//QUESTION\\ ^&")
4) J'appuie sur remplacer, là ça marche, tout se remplace niquel, la macro est crée, le code y est.

PROBLEME: Des que je veux ré-executer la macro sur la même feuille avec les balises question enlevées, RIEN ne se passe, pourtant ma macro se lance... j'execute pas à pas, le compilateur descend bien ligne par ligne, mais RIEN ne se passe sur mon Doc word.

Quelqu'un saurait-il me dire pourquoi silvouplait?

7 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
C'est forcément une de tes modifs qui provoque cette 'panne'.
Revérifie bien ce que tu as modifié quand tu dis "avec les balises question enlevées"
Pour nous, tant qu'on n'aura pas le code sous les yeux, on ne pourra rien à ton problème ...

Voir aussi :
"Comment lances-tu cette macro ?"
"Ta macro sélectionne t-elle bien le document avant de commencer ?"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
13
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
26 février 2009

ça fait des mois que je fais des macros, et c'est la premiere fois que j'ai ce genre de probleme...
"avec les balises question enlevées" veut dire que je les selectionne, et appuie sur la touche RETOUR.
CODE:

Sub Macro1()
'
' Macro1 Macro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Style = ActiveDocument.Styles("Question")
    With Selection.Find.ParagraphFormat
        With .Shading
            .Texture = wdTextureNone
            .ForegroundPatternColor = wdColorBlack
            .BackgroundPatternColor = wdColorBlack
        End With
        .Borders.Shadow = False
    End With
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ""
        .Replacement.Text = "//QUEST ^&"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Re
Bon, j'ai créé un style "Question" et enregistré une macro décrivant tes manips.
En effet, en mode interactif, cela fonctionne, mais pas lorsqu'on relance la macro, je confirme.
J'ai regardé mais je n'est rien trouvé de spécial.
Juste un paramètre ReplaceWith qui apparait dans la syntaxe Execute mais qui n'existe pas réellement, bizarre.
Désolé
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
PS : Je suis en Word 2003
Messages postés
13
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
26 février 2009

Moi je suis sur word 2007...merci d'avoir pris le temps de tester tout ça en tout cas.
Messages postés
13
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
26 février 2009

Personne d'autre n'aurait une idée ??!
Messages postés
13
Date d'inscription
jeudi 16 octobre 2008
Statut
Membre
Dernière intervention
26 février 2009

Silvouplait ?