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

VB.NET Discussion :

Modifier les DocumentProperties d'un document Word


Sujet :

VB.NET

  1. #1
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut Modifier les DocumentProperties d'un document Word
    Bonjour,

    Je souhaite renseigner la propriété titre (wdPropertyTitle) d'un document Word via VBnet.

    En VBA, le code suivant fonctionnait très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objDocument.BuiltInDocumentProperties(wdPropertyTitle) = strTitle
    En VBnet, par souci de rigueur, j'ai ajouté Option Strict On et j'ai modifié mon code ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim myDocumentProperties As Microsoft.Office.Core.DocumentProperties
    myDocumentProperties = CType(objDocument.BuiltInDocumentProperties, Microsoft.Office.Core.DocumentProperties)
    myDocumentProperties.Item(Microsoft.Office.Interop.Word.WdBuiltInProperty.wdPropertyTitle).Value = strTitle
    Grace à cette syntaxe, l'IDE ne trouve plus d'erreur,
    mais je rencontre l'erreur "Impossible d'effectuer un caste d'un objet COM en type d'interface" à l'exécution:

    Nom : DocumentProperties.png
Affichages : 846
Taille : 36,7 Ko

    Connaissez la bonne méthode pour modifier ma propriété wdPropertyTitle ?

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Tu peux utiliser la dll DSOFile:

    https://support.microsoft.com/en-us/...?wa=wsignin1.0

    C'est probalement la méthode qui se rapproche plus du VB-VBA traditionnel

    Tu peux aussi passer passer par le SDK OpenXML et sa fameuse dll DocumentFormat.openXML qu'il faut ajouter dans les références:

    http://www.microsoft.com/en-us/downl....aspx?id=30425 (téléchargement des composants)

    https://msdn.microsoft.com/en-us/lib.../bb448854.aspx (Documentation)

    Des exemples Microsoft:

    https://code.msdn.microsoft.com/site...ce%20team&ac=2
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Merci clementmarcotte pour ta réponse,

    Cependant, je n'ai pas encore testé tes 2 solutions.
    Est-ce vraiment nécessaire d'installer une dll (Dsofile.dll) ou le un sdk (Open XML SDK 2.5 for Microsoft Office) pour faire ma toute simple modification de propriété d'une propriété d'un fichier word ?

    La 1ere solution = installer Dsofile.dll indique clairement
    The Dsofile.dll files lets you edit Office document properties when you do not have Office installed
    Pourquoi donc aurais-je besoin d'installer une dll supplémentaire, alors que j'ai bien office installé sur mon poste ?
    Je t'explique ma réticence: comme mon appli est destinée à être déployée, j'essaye de maintenir le package le plus light possible...

    La 2nde solution = installer Open XML SDK 2.5 for Microsoft Office indique
    This download provides strongly typed part and content classes for use with Open XML documents.
    C'est sans doute très efficace, mais est-ce bien nécessaire de même tout ça en place juste pour écrire la propriété "title" d'un document word ?

    J'ai déjà mis à jour la propriété title d'un document word docx avec VBNet sous Visual Studio 2008 Express edition comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            objDocument.BuiltInDocumentProperties(Microsoft.Office.Interop.Word.WdBuiltInProperty.wdPropertyTitle) = strTitle
    Avoue que c'est extrêmement simple !!!

    Pour ma nouvelle version sous Visual Studio 2013 (dans un projet Wpf), toujours en VBNet, j'ai juste ajouté Option Strict On.

    N'y a-t'il pas une solution simple pour rendre l'opération possible sous Visual Studio 2013 avec Option Strict On ?

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Golard Voir le message
    Merci clementmarcotte pour ta réponse,

    Cependant, je n'ai pas encore testé tes 2 solutions.
    Est-ce vraiment nécessaire d'installer une dll (Dsofile.dll) ou le un sdk (Open XML SDK 2.5 for Microsoft Office) pour faire ma toute simple modification de propriété d'une propriété d'un fichier word ?

    La 1ere solution = installer Dsofile.dll indique clairement

    Pourquoi donc aurais-je besoin d'installer une dll supplémentaire, alors que j'ai bien office installé sur mon poste ?
    Je t'explique ma réticence: comme mon appli est destinée à être déployée, j'essaye de maintenir le package le plus light possible...

    La 2nde solution = installer Open XML SDK 2.5 for Microsoft Office indique

    C'est sans doute très efficace, mais est-ce bien nécessaire de même tout ça en place juste pour écrire la propriété "title" d'un document word ?

    J'ai déjà mis à jour la propriété title d'un document word docx avec VBNet sous Visual Studio 2008 Express edition comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            objDocument.BuiltInDocumentProperties(Microsoft.Office.Interop.Word.WdBuiltInProperty.wdPropertyTitle) = strTitle
    Avoue que c'est extrêmement simple !!!

    Pour ma nouvelle version sous Visual Studio 2013 (dans un projet Wpf), toujours en VBNet, j'ai juste ajouté Option Strict On.

    N'y a-t'il pas une solution simple pour rendre l'opération possible sous Visual Studio 2013 avec Option Strict On ?
    À vrai dire, je n'ai jamais essayé de modifier une propriété Office par VB.net avec option Strict.

    Ceci dit, il y a cette discussion, et la réponse de rdurupt pour "atteindre" une instance ouverte d'Excel en utilisant Marshall. J'ai pris le code en note, mais je n'ai pas encore essayé de l'adapter à la gestion des propriétés.

    Pour répondre à tes interrogations, DSOFile et OpenXML permettent de modifier les propriétés des Fichiers Office fermés, sans devoir les ouvrir, ni même avoir Office installé sur la machine. OpenXML est un peu compliqué à maîtriser mais tu peux l'utiliser pour écrire un classeur Excel, un document Word et même une présentation PowerPoint sans même ouvrir ces programmes.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    J'ai fini par "finir" cela:

    http://www.developpez.net/forums/d15...office-vb-net/

    Cela ne change aucune propriété, mais, cela les lit et les affiche.

    Avec les liens de téléchargement pour DSOFile, OpenXML et le (bon) runtime d'Access.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Modifier une image d'un document Word 2003
    Par longbeach dans le forum Word
    Réponses: 2
    Dernier message: 12/03/2009, 15h44
  2. [E-03] Modifier une entête d'un document Word
    Par Jean-Pierre49 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 21/10/2008, 08h04
  3. Réponses: 1
    Dernier message: 07/05/2008, 11h31
  4. Modifier les propriétés d'un document
    Par mosquitout dans le forum Microsoft Office
    Réponses: 5
    Dernier message: 15/02/2008, 20h02
  5. Une autre façon de compter les pages d'un document word
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/05/2007, 12h53

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