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 :

Récupération de CustomDocumentProperties Word depuis macro Excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Récupération de CustomDocumentProperties Word depuis macro Excel
    Bonjour,

    J'essaye de créer une macro Excel qui récupère l'ensemble des CustomDocumentProperties d'un document Word. Cependant, je n'arrive pas à récuperer correctement ces properties. J'ai toujours une erreur "Incompatibilité de type" quand la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wordDocProperties = wordDoc.CustomDocumentProperties
    s'execute.

    Je n'arrive vraiment pas à comprendre pourquoi...

    Ci-dessous le code complet:

    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
    Option Explicit
     
    Sub getProperties()
     
    Dim wordApp As Word.Application
    Dim wordDoc As Word.Document
    Dim wordDocProperties As Office.DocumentProperties
     
    Set wordApp = CreateObject("Word.Application")
    Set wordDoc = wordApp.Documents.Open("d:\test.doc")
    Set wordDocProperties = wordDoc.CustomDocumentProperties 'ligne qui pose problème
     
    wordDoc.Close
    wordApp.Quit
    End Sub
    Auriez-vous une idée? Merci d'avance pour vos suggestions.

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour Apo_fr,

    Quel est la finalité de ce que tu souhaites faire ?
    J'avoue ne pas bien maîtriser depuis Excel les propriétés d'un Word mais par exemple, avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each valeur In wordDoc.BuiltinDocumentProperties
        MsgBox valeur.Name
    Next valeur
    ... tu obtiens la liste des propriétés d'un Word.

    Je ne sais pas si ça t'aide mais n'hésite pas à expliciter d'avantage.

    Cordialement,
    Kimy

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour Kimy,

    Merci pour ton retour.
    (Les BuiltinDocumentProperties et CustomDocumentProperties ne sont pas tout à fait la même chose, mais la démarche est la même je pense.)
    J'ai récupéré ton code, il fonctionne tel quel, mais je n'arrive pas à le faire fonctionner en déclarant ta variable "valeur" en tant que DocumentProperties.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim valeur As Office.DocumentProperty
    J'ai toujours l'erreur de typage.

    Je souhaite déclarer toutes mes variables pour pouvoir bénéficier des auto-complétions dans l'éditeur.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je me permets de relancer, vu que j'ai toujours le souci...

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    voir directement depuis Word si cela fonctionne, et dans l'affirmative poster dans cette discussion le code Word …

    Pour l'auto-complétion il faut déclarer les variables se référant à Word en liaison anticipée
    en activant dans le projet Excel la référence Word …

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour Marc-L,

    Merci pour ta suggestion. Dans un document Word, la macro suivante fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Sub getProperties()
     
    Dim currentDocument As Document
    Dim wordDocProperties As DocumentProperties
    Dim wordDocProperty As DocumentProperty
     
    Set currentDocument = ThisDocument
    Set wordDocProperties = currentDocument.CustomDocumentProperties
    Set wordDocProperty = currentDocument.CustomDocumentProperties(1)
     
    End Sub
    Dans mon fichier Excel, j'ai déja ajouté la réference necessaire me semble-t-il:
    Nom : capture.PNG
Affichages : 533
Taille : 6,3 Ko


    et dans la macro, c'est toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wordDocProperties = wordDoc.CustomDocumentProperties
    qui pose problème de compatibilité de type.

    Merci d'avance pour vos retours.

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Effectivement le type de la variable ne passe pas : utiliser le type Object, tant pis pour l'auto-complétion !
    Un point d'arrêt après le Set de la variable permet de consulter sa structure dans la fenêtre des Variables locales
    Et pour raison de compatibilité inter-versions, mieux vaut désactiver au final la référence de Word.

    Exemple sans variable objet ni référence de Word affichant les valeurs dans la fenêtre Exécution :

    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
    Sub Demo()
         Const FICHIER$ = "D:\Tests\Test .doc"
        If Dir(FICHIER) = "" Then Beep: End
     
        With CreateObject("Word.Application")
            With .Documents.Open(FICHIER)
                With .CustomDocumentProperties
                    If .Count = 0 Then
                        Debug.Print "Pas d'élément !"
                    Else
                        For L& = 1 To .Count
                            With .Item(L):  Debug.Print .Name & " :  " & .Value:  End With
                        Next
                    End If
                End With
     
                .Close
            End With
     
            .Quit
        End With
     
        End
    End Sub
    _______________ _____________________________________ _____________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


    __________________________________________________________________________________________
    Ce qui compte ne peut pas toujours être compté, et ce qui peut être compté ne compte pas forcément. (Albert Einstein)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ok, merci pour ces éléments malgré tout!

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

Discussions similaires

  1. [XL-2010] Problème de sauvegarde Word et Pdf depuis macro excel
    Par Cllem_501 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 14/11/2014, 14h03
  2. [XL-2007] Affichage doc Word depuis macro Excel
    Par KekeStreet dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/11/2012, 11h52
  3. Démarrer macro Word depuis macro Excel
    Par nashiboy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2009, 20h02
  4. Récupération valeur signets Word depuis Excel
    Par scrouet dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/01/2009, 14h49
  5. Comment ouvrir word depuis macro excel ?
    Par megapacman dans le forum VBA Word
    Réponses: 4
    Dernier message: 15/11/2006, 15h59

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