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

Word Discussion :

Insérer une image qui est intégrée dans un fichier XML


Sujet :

Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 5
    Points : 0
    Points
    0
    Par défaut Insérer une image qui est intégrée dans un fichier XML
    Bonjour à tous,

    voici mon problème, j'ai travail sur un fichier XML afin de créer un nouvel onglet dans Word avec des boutons, des groupes et des images.

    Ce fichier XML contient donc des images que j'ai intégré via un logiciel "Custom UI Editor" (qui au passage est super),

    Voici une capture d'écran d'une partie de mon code avec sur la gauche les fameuses images intégrées grasse au logiciel :

    Nom : Image sans titrssse.png
Affichages : 733
Taille : 22,3 Ko

    Jusqu'ici tout va bien, on peut voir que mon bouton "Recablage Moteur" a une image (intégrée) qui s'appelle "moteurs_accueila" et donc dans Word j'ai bien mon bouton avec mon image comme on peut le voir ici :

    Nom : Image sadssns titre.png
Affichages : 725
Taille : 28,3 Ko

    Ceci m’amène à ma problématique, à présent je souhaiterais (si c'est possible) pouvoir appeler mon image "moteurs_accueila" qui se trouve dans le fichier XML dans le VBA. C'est à dire que quand je clique sur un bouton de mon ruban (peu importe lequel ça n'a pas d'importance) il apparaît mon image "moteurs_accueila" dans mon fichier Word (grasse à une commande VBA)

    Autrement dit faire une sorte de commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.InlineShapes.AddPicture FileName:=" " LinkToFile:=False, SaveWithDocument:=True
    Mais qui va chercher l'image "moteurs_accueila" qui est intégrée dans mon fichier XML

    Petite précision : Le fichier XML (Custom UI) se trouve à l'intérieur du document Word (dans son répertoire source), ce n'est pas une importation externe. voici une capture d'écran du répertoire source du fichier Word (pour arriver à ce répertoire j'ai changé le format de mon document Word de .doc en .zip):

    Nom : Image sans titred.png
Affichages : 553
Taille : 12,3 Ko

    à l'intérieur du dossier Custom UI je retrouve mon fichier XML avec mon code et également un dossier image :

    Nom : Image asans titre.png
Affichages : 564
Taille : 2,8 Ko

    Avec mes images intégrées depuis mon logiciel à l'intérieure :

    Nom : Image sans titare.png
Affichages : 646
Taille : 6,2 Ko

    Comme vous pouvez le voir il y a bien ma fameuse image "Moteur_accueila"

    (J'ai essayé de copier le répertoire du dossier source (C/....../MonDocumentWord.doc/CustomUI/Image/moteur_accueila.jpg) mais cela ne marche pas ... pas drôle sinon

    Voilà j'espère avoir été le plus compréhensible possible car comme disait Einstein « Un problème sans solution est un problème mal posé »

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Word n'est pas capable d'ouvrir ses fichiers XML pour en utiliser le contenu.
    Si l'image n'est pas en fichier image, Word ne peut l'utiliser.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 224
    Points : 443
    Points
    443
    Par défaut
    Bonjour Kevin, Olivier,


    Même si le fil commence à se faire vieux...

    Une solution serait d'extraire en VBA le contenu du document (comme on peut le faire avec un logiciel d'archivage) pour pouvoir ensuite récupérer le images insérées avec Custom UI Editor.

    Un exemple avec le code ci-dessous à mettre dans le module ThisDocument :
    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
    29
    30
    31
    32
    33
    Private oFso As Object
    Private pathDossierExtract As String
     
    Public Property Get PathExtract() As String:        PathExtract = pathDossierExtract:       End Property
     
     
    'à l'ouverture, dézipper une copie du document
    Private Sub Document_Open()
     
        Set oFso = CreateObject("Scripting.FileSystemObject")
     
        'créer un dossier temporaire dans le dossier %TMP% de l'utilisateur
        pathDossierExtract = Environ("TMP") & "\" & oFso.GetTempName
        oFso.CreateFolder pathDossierExtract
     
        'créer une copie du doc au format zip, la dézipper et la supprimer
        oFso.CopyFile ThisDocument.FullName, pathDossierExtract & "\doc.zip", True
        With CreateObject("Shell.Application")
            .Namespace(pathDossierExtract & "\").CopyHere .Namespace(pathDossierExtract & "\doc.zip").Items
        End With
        oFso.DeleteFile pathDossierExtract & "\doc.zip", True
     
    End Sub
     
     
    'à la fermeture, détruire le dossier temporaire
    Private Sub Document_Close()
        If oFso.FolderExists(pathDossierExtract) Then
            oFso.DeleteFolder pathDossierExtract, True
            pathDossierExtract = vbNullString
        End If
        Set oFso = Nothing
    End Sub
    Et ainsi, tu peux rajouter cette ligne de code derrière la macro callback de ton bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'insérer l'image au niveau de la sélection
    Selection.InlineShapes.AddPicture ThisDocument.PathExtract & "\customUI\images\MonImage.png", False, True
    A+

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/02/2014, 10h16
  2. Réponses: 1
    Dernier message: 31/03/2007, 10h16
  3. Recuperer une image qui se trouve dans le presse papier
    Par kaderscream dans le forum C++Builder
    Réponses: 1
    Dernier message: 19/08/2006, 10h39
  4. Insérer une image ou un texte dans un page pré-concue
    Par Mawashigeri dans le forum Langage
    Réponses: 1
    Dernier message: 01/07/2006, 11h00
  5. Réponses: 2
    Dernier message: 19/09/2005, 17h20

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