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 :

[E-02] VBA : Récupérer du texte dans Word à partir d'Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut [E-02] VBA : Récupérer du texte dans Word à partir d'Excel
    Bonjour,

    je souhaite récupérer via macro Excel (Excel2002 sous XP) des données contenues dans un fichier .doc (Word2002).
    Exemple : ici, dans ma macro VBA Excel, je voudrais récupérer le texte (une référence sur 5 caractères) qui se trouve après le mot "Facture :" dans le fichier Word qui est actuellement ouvert.

    J'ai procédé en deux temps :
    - écriture de la macro sous Word --> ça marche !
    - transposition de la macro sous Excel --> ça ne marche pas

    Voici ma macro sous Word (qui fonctionne donc) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Reffact As Range 
    Set myRange = ActiveDocument.Content 
    myRange.Find.Execute FindText:="Facture :", Forward:=True 
    If myRange.Find.Found = True Then 
      If Selection.StoryType = wdMainTextStory Then 
         wUnits = Selection.Move(Unit:=wdWord, Count:=1) 
      End If 
    If wUnits < 1 Then 
      MsgBox "Numéro de facture inexistant" 
    Else 
      Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend 
      Set Reffact = ActiveDocument.Range(Selection.Start, Selection.End) 
      MsgBox "Facture = " & Reffact.Text 
    End If
    Voici ma macro transposée sous Excel qui ne fonctionne pas :
    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
    Set myRange = ActiveDocument.Content 
    myRange.Find.Execute FindText:="Facture :", Forward:=True 
    If myRange.Find.Found = True Then 
      'on a bien trouvé une référence de facture 
      If FichierWord.Selection.StoryType = .wdMainTextStory Then 
         wUnits = Selection.Move(Unit:=wdWord, Count:=1) 
      End If 
      If wUnits < 1 Then 
         MsgBox "Numéro de facture inexistant" 
      Else 
         FichierWord.Selection.MoveRight Unit:=wdCharacter, Count:=5,    Extend:=wdExtend 
         Set Reffact = ActiveDocument.Range(Selection.Start, Selection.End) 
         MsgBox "Facture = " & Reffact.Text 
      End If 
    End If
    Il doit manquer des blocs "With - End With" mais je ne connais pas la syntaxe.
    Quelqu'un aurait une idée ou des pistes ?
    Par avance merci.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    De nombreux exemples existent sur le forum pour piloter word depuis excel.

    Pour avoir accès aux variables word tu dois les prefixer, un pt't bout de code en exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Exemple
    Dim wrdApp As Object
    Dim wrdDoc As Object
     
    Set wrdApp = CreateObject("Word.Application")
    Set wrdDoc = wrdApp.Documents.Open(Wchemin)
    wrdApp.Visible = True ' False 'True
    Dim range1 As Word.Range
    Dim range2 As Word.Range
    Dim Maligne As Integer
     
    wrdApp.Selection.HomeKey Unit:=wdStory
     
    End-SUB

  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    Oui, c'est bien ce que j'ai fait dans mon exemple (effectivement on ne voit pas le "CreateObject("Word.Application")" mais il y est bien), mais malgré cela ça ne marche pas.
    Bon je vais fouiller du côté des exemples sur le forum ...
    Merci.

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Peux-tu préciser ce qui ne marche pas ? (est-ce que word s'ouvre bien ...)

    EDIT : As tu ajouté la référence Microsoft Word xx Object Library ?

  5. #5
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    Voilà ce qui ne marche pas :

    j'ai le message d'erreur suivant :
    "Variable objet ou variable bloc with non définie"
    sur la ligne de code Excel VBA suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FichierWord.Selection.MoveRight Unit:=wdCharacter, Count:=5,    Extend:=wdExtend
    NB : J'ai bien ajouté la référence Microsoft Word 10.0 Object Library.

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Alors je ne comprends pas, j'ai bien testé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wrdApp.Selection.MoveRight Unit:=wdCharacter, Count:=5,    Extend:=wdExtend
    et pas de soucis chez moi

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/01/2013, 03h39
  2. Récupérer du texte dans word à coller dans Excel
    Par progaide dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 22/01/2009, 10h12
  3. Recherche de texte dans word à partir d'excel
    Par bullrot94 dans le forum Excel
    Réponses: 2
    Dernier message: 19/10/2008, 14h43
  4. [VBA-E] ouverture de fichier word à partir d'Excel
    Par aramge dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/08/2006, 09h18
  5. [VBA-E]Insérer des autotext dans Word à partir d'excel
    Par noordman dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2006, 15h34

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