Accèder aux propriété d'un document WORD 2003 à partir de VBA dans EXCEL [Résolu]

Messages postés
10
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
9 mars 2010
- - Dernière réponse : anwarovic1989
Messages postés
4
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
6 mars 2010
- 5 mars 2010 à 21:58
Bonjour.

J'ai écrit un programme en VBA dans un document EXCEL. Ce programme ouvre un fichier WORD et importe des données dans le fichier excel. Or, il existe plusieurs formats de ce fichier WORD et pour les différencier, j'ai rajouté la propriété Version dans les documents Word. J'aimerais savoir comment accéder cette propriété à partir d'Excel VBA.

Je pense que je dois utiliser les customdocumentproperties, mais j'ai franchement tout essayé et je n'y arrive pas. Qqn aurait une idée ou un bout de code?


Merci!
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
3
Merci
Salut
On parle bien d'une propriété nommée "Version" que tu as ajoutée toi même, c'est ça ?
Et l'exemple fourni avec l'aide de CustomDocumentProperties ne fonctionne pas ?
Une simple boucle permet de les énumérer toutes :
    Dim oProps As Object
    For Each oProps In ActiveDocument.CustomDocumentProperties
        If oProps.Name = "Version" Then
            Debug.Print "Version : "; oProps.Value
            Exit For
        End If
    Next

Comment ouvres-tu ton fichier Word ?

As-tu ajouté la référence aux objets Word dans ton classeur Excel ?

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
10
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
9 mars 2010
0
Merci
Salut et merci de ton temps.

voici le code simplifié que j'essaie de faire fonctionner. J'obtiens toujours l'erreur d'exécution 13 "Incompatibilité de type" LORSQUE DES VARIABLES CUSTOM EXISTENT dans le fichier .doc à la ligne
For Each propCustom In WordDoc.CustomDocumentProperties
        


Si aucune variable n,existe, le code s'exécute comme il faut puisqu'il ne rentre pas dans la boucle for.

J'ai essayé ton code également, mais je pense pas qu'il puises fonctionner dans Excel (je code dans Excel et non dans Word.

Merci!

Sub test()
    
    Dim WordApp As Word.Application
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = False
    
    Dim WordDoc As Word.Document
    Set WordDoc = WordApp.Documents.Open("f:\test.doc", , True)
    
    Dim propCustom As Word.CustomProperty
    
    Debug.Print WordDoc.CustomDocumentProperties.Count & " variables found"
    
    For Each propCustom In WordDoc.CustomDocumentProperties
        If propCustom.Name = "VersionRI" Then
            Debug.Print "VersionRI = " & propCustom.Value
            Exit For
        End If
    Next
    
    WordDoc.Close (False)
    WordApp.Quit

End Sub
Commenter la réponse de RoGx
Messages postés
10
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
9 mars 2010
0
Merci
Comme dans ton code, je viens d'essayer de remplacer le type de propCustom seulement Object et cela semble fonctionner! Je ne comprends toutefois pas pourquoi, est-ce que mon choix de type de variable était incorrect? quel est le bon?

Merci!

Sub test()
    
    Dim WordApp As Word.Application
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = False
    
    Dim WordDoc As Word.Document
    Set WordDoc = WordApp.Documents.Open("f:\test.doc", , True)
    
    Dim propCustom As Object
    
    Debug.Print WordDoc.CustomDocumentProperties.Count & " variables found"
    
    For Each propCustom In WordDoc.CustomDocumentProperties
        If propCustom.Name = "VersionRI" Then
            Debug.Print "VersionRI = " & propCustom.Value
            Exit For
        End If
    Next
    
    WordDoc.Close (False)
    WordApp.Quit

End Sub
Commenter la réponse de RoGx
Messages postés
4
Date d'inscription
samedi 21 mars 2009
Statut
Membre
Dernière intervention
6 mars 2010
0
Merci
je suis besoin de votre aide svp.... ,je vous accder a des applications word exel..sql...vb.. a partir d'une application vb
aide moiiiiiiiiiii aide moiiiiiiiii


anwar fatiane
Commenter la réponse de anwarovic1989