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

Macros et VBA Excel Discussion :

Modification d'objets dans un Word [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Généraliste
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut Modification d'objets dans un Word
    Bonjour à tous
    je souhaite accéder à des shapes qui sont dans un Word existant pour modifier leur contenu. Le problème c'est qu'on ne peut pas les renommer sous Word. J'ai donc fais une boucle For Each pour les trouver à partir de leur contenu

    Voici mon code (simplifié):

    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 EditWord()
     
        Dim WordApp As Word.Application
        Dim WordDoc As Word.Document
        Dim WordFile As String
     
        'Spécifie le chemin d'accès
        WordFile = MyDir & "\WordFile.docx"
        Set WordApp = CreateObject("Word.Application")
        'Affiche Word
        WordApp.Visible = True
        'Ouvre le document
        Set WordDoc = WordApp.Documents.Open(WordFile)
     
        .Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=2
         WordApp.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocumen
     
        Dim Sh As Shape
        With WordApp
        For Each Sh In .ActiveDocument.Shapes
            .ActiveDocument.Shapes(Sh.Name).Select
            If .Selection.Text = "blabla" Then
                  .Selection.Text = "blablablabla"
            End If
        Next Sh
        End With
     
    End sub
    Le problème c'est que VB plante sur la ligne "For Each Sh In .ActiveDocument.Shapes" en affichant :"erreur d’exécution '13': incompatibilité de type"
    J'ai recherché la solution sur plusieurs forums mais sans succès
    Merci d'avance de votre aide

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Généraliste
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    Personne ne veut m'aider ou personne n'a la réponse?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Généraliste
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Généraliste
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    J'ai trouvé une solution alternative:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            Dim i As Integer
            With WordApp
                For i = 1 To .ActiveDocument.Shapes.Count
                    .ActiveDocument.Shapes(i).Select
                    With .Selection.Find
                        .Text = "blabla"
                        .Replacement.Text = "blablabla"
                        .Execute Replace:=wdReplaceAll
                    End With
                Next
            End With

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

Discussions similaires

  1. Insérer un Objet dans un document Word
    Par benstile dans le forum VBScript
    Réponses: 5
    Dernier message: 14/09/2010, 12h52
  2. Modification du Ruban dans Word 2010
    Par Heureux-oli dans le forum Word
    Réponses: 1
    Dernier message: 30/07/2009, 19h59
  3. sélections automatiques d'objets dans Word
    Par antoine.b dans le forum VBA Word
    Réponses: 6
    Dernier message: 19/06/2007, 15h30
  4. [Registry] Modification d'un objet dans le registre
    Par Verboz dans le forum Autres composants
    Réponses: 3
    Dernier message: 14/12/2006, 21h22
  5. Réponses: 2
    Dernier message: 17/08/2006, 16h24

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