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 :

Recherche et remplacer du texte dans une boîte de texte


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Recherche et remplacer du texte dans une boîte de texte
    Bonjour,

    J'essaie de remplacer du texte qui se trouve dans une boîte de texte. Je n'arrive pas à comprendre pourquoi cela ne fonctionne pas. Certaines boîtes de textes sont incluse dans une boîte de texte mais même si ce n'est pas le cas, cela ne fonctionne pas. Est-ce que vous auriez une idée pour me débloquer?

    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
    Public Sub Find_Replace(F As String, R As String, wdMainDoc As Word.Document)
     
            Dim oShape As Shape
     
            For Each oShape In wdMainDoc.Shapes
     
            oShape.Select
     
                    If Len(R) > 2 Then
                        F = Left(F, InStr(1, F, "]", 1))
                        R = Left(R, Len(R) - 2)
                        With Selection.Find
                            .Text = F
                            .Replacement.Text = R
                            .Execute Replace:=wdReplaceAll
                        End With
                    End If
            Next oShape
     
    End Sub
    Merci,

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 108
    Points : 171
    Points
    171
    Par défaut
    Bonjour
    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
    Public Sub Find_Replace(F As String, R As String, wdMainDoc As Word.Document)
     
    For i = 1 To wdMainDoc.Shapes.Count
    If wdMainDoc.Shapes(i).TextFrame.HasText Then
                With wdMainDoc.Shapes(i).TextFrame.TextRange.Words
                    'Boucle sur les mots
     
                For j = 1 To .Count
                    .Item(j).Text = Replace(.Item(j).Text, F, R)
                Next
            End With
    End If
    Next
    End Sub
     
     
    Sub replacer_aaa_par_ccc()
    Call Find_Replace("aaa", "ccc", ActiveDocument)
    End Sub

  3. #3
    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,

    Je ne vois pas l'intérêt de compter les shapes.
    On peut boucler sur les objets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Olivier001()
    Dim oSh As Shape
     
    For Each oSh In ActiveDocument.Shapes
        oSh.TextFrame.TextRange.Select
            Selection.Find.Execute2007 "Pote", , , , , , True, , , "Olii"
    Next oSh
     
    End Sub
    On peut utiliser la fonction recherche et remplacement directement sur la sélection.
    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 !

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

Discussions similaires

  1. [AC-2003] Rechercher/Supprimer une portion de texte dans une chaîne de texte
    Par elgordopresto dans le forum Access
    Réponses: 6
    Dernier message: 22/01/2015, 14h15
  2. Réponses: 3
    Dernier message: 23/01/2012, 14h50
  3. rechercher et remplacer un caractere dans une base de données
    Par trialrofr dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 29/01/2009, 10h07
  4. [VBA-W][VBA-E]Remplacer ou écrire 1 texte dans une zone de texte
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/04/2007, 10h31
  5. Remplacer ou écrire 1 texte dans une zone de texte
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 02/03/2007, 18h17

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