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 :

remplacer du text dans des frames


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 69
    Points
    69
    Par défaut remplacer du text dans des frames
    Bonjour à tous,
    je suis débutant et c'est ma première macro en vba.
    Voilà, j'aimerais changer un texte dans plusieurs documents. Le problème, c'est que tous mes textes se trouvent dans des cadres textes qui peuvent être groupés ensemble. Voici où j'en suis aujourd'hui.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ScanDossier()
        On Error Resume Next
        Dim sh, f, fold
        Set sh = CreateObject("Shell.Application")
        Set f = sh.BrowseForFolder(0, "", 592)
        fold = f.Items.Item.Path
        If Err.Number <> 0 Then Exit Sub
        TraiteDossier fold
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TraiteDossier(fold)
        Dim f, fs
        Set fs = CreateObject("Scripting.FileSystemObject")
        For Each f In fs.getFolder(fold).Files
            If Right(f.Name, 5) = ".docx" Then traiteFic (f)
        Next
        For Each f In fs.getFolder(fold).Subfolders
            TraiteDossier f.fullpath
        Next
    End Sub
    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
    Sub traiteFic(f)
        Documents.Open FileName:=f
     
         For Each S In ActiveDocument.Shapes
            For Each it In S.Item
            Set myRange = it.Range
           With myRange.Find
            .Text = "angle"
            .Replacement.Text = "secteur angulaire"
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
        ActiveDocument.Close wdSaveChanges
            Next it
       Next S
     
    End Sub
    Mon problème se situe sur la procédure traiteFic().
    J'aimerais pouvoir parcourir toutes les frames et tous les cadres textes pour remplacer tous les mots angle par secteur angulaire
    D'avance merci.

  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,

    Si c'est pour un remplacement, pourquoi ne pas utiliser la fonction recherche et remplacement de Word ?

    http://heureuxoli.developpez.com/off...-et-remplacer/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 69
    Points
    69
    Par défaut
    Bonjour,
    sans macro, il faut que je répète l'opération sur plus d'une centaine de fichiers , c'est pour cela que j'essaie de faire une macro.

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

    Il y a un exemple dans le lien que je t'ai donné.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 69
    Points
    69
    Par défaut
    Bonjour,
    désolé mais je n'ai rien vu concernant le parcours des frames et des cadres textes.

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

    Currieusement, la recherche fonctionne totalement en mode graphique, mais pas en mode vba.

    Voilà ce que je viens d'utiliser commecode :

    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
    Sub RechercheDansCadre()
    With Selection.Find
        .Text = "tables"
        .Replacement.Text = "Olivier"
        .Forward = True
        .Wrap = wdFindContinue
     
        .Execute Replace:=wdReplaceAll
    End With
     
     
    End Sub
     
    Sub testsurrange()
    Dim InSh As InlineShape
    Dim Sh As Shape
     
    For Each InSh In ActiveDocument.InlineShapes
    InSh.Select
    RechercheDansCadre
    Next InSh
     
    For Each Sh In ActiveDocument.Shapes
    Sh.Select
    RechercheDansCadre
    Next Sh

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 22
    Points : 69
    Points
    69
    Par défaut
    Merci beaucoup,
    ça marche nickel mais je ne comprends pas pourquoi, mais c'est normal car c'est la première fois que je fais du VBA.

  8. #8
    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
    Citation Envoyé par ciola Voir le message
    Merci beaucoup,
    ça marche nickel mais je ne comprends pas pourquoi, mais c'est normal car c'est la première fois que je fais du VBA.
    Si tu nous dis ce que tu ne comprends pas, possible qu'on puisse te donner une explication.

Discussions similaires

  1. [2D/3D] Remplacer les pbuffers par des frame buffer objects dans Qt 5
    Par LittleWhite dans le forum Qt
    Réponses: 0
    Dernier message: 22/02/2013, 08h49
  2. remplacer du texte dans des formules
    Par millien dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/06/2008, 12h45
  3. Programme de remplacement de texte dans des fichiers
    Par Invité4 dans le forum Linux
    Réponses: 13
    Dernier message: 12/11/2006, 16h06
  4. [langage] Remplacer du texte dans un fichier
    Par Michaël dans le forum Langage
    Réponses: 9
    Dernier message: 11/03/2005, 15h19
  5. appel dans des frames
    Par drizzt2511 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/01/2005, 09h40

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