Discussion: Ajout d'une image [XL-2010]

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 122
    Points : 53
    Points
    53

    Par défaut Ajout d'une image

    Bonjour,

    je génère actuellement un graphe dans un onglet dans lequel j'incorpore une image appelée "Matrix".
    Cette image se trouve en dehors de la macro excel dans le même répertoire. Voici la partie chargement de l'image dans le graphe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With Selection.Format.Fill
           .Visible = msoTrue
           .UserPicture ThisWorkbook.Path & "\matrix.PNG"
           .TextureTile = msoFalse
    End With
    Je cherche à faire en sorte d'éviter de devoir créer un fichier zip contenant la macro et cette image pour la transmettre à d'autres personnes.
    Est-il possible d'incorporer au sein du classeur excel cette image afin de ne transmettre à mes correspondants que la macro ?

    Merci par avance pour vos idées

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    juin 2007
    Messages
    8 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : juin 2007
    Messages : 8 123
    Points : 14 822
    Points
    14 822

    Par défaut

    Si ta macro est dans un fichier xlsm, tu peux mettre ton image dans un onglet (éventuellement caché) et la transférer dans ton graph par copie.

    Peux-tu dire quel type d'objet désigne Selection ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 122
    Points : 53
    Points
    53

    Par défaut

    Bonjour,
    merci pour votre conseil. Je vais essayer d'effectuer cette approche
    La sélection concerne un graphe généré auparavant. j'insère au sein de ce graphe l'image

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 122
    Points : 53
    Points
    53

    Par défaut

    Rebonjour,

    Je viens d'essayer de voir comment insérer dans la zone de traçage du graphe l'image.
    J'ai un peu de mal à voir comment effectuer cette action, sachant que cette dernière a été stockée dans un autre onglet appelé "maquette"
    Dois je travailler sur l'objet .Userpicture ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ActiveChart.ChartArea.Select
        ActiveChart.PlotArea.Select
        With Selection.Format.Fill
            .Visible = msoTrue
            .UserPicture ThisWorkbook.Path & "\matrix.PNG"
            .TextureTile = msoFalse
        End With

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    juin 2007
    Messages
    8 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : juin 2007
    Messages : 8 123
    Points : 14 822
    Points
    14 822

    Par défaut

    Il est possible de le faire "manuellement" (dans le format de ma zone de traçage du graphique, il y a un bouton "Presse-papier" sous "Insérer une image à partir de").
    Donc, il est probable qu'il est possible de le faire en VBA.

    Malheureusement, ça semble être l'un des rares cas où l'enregistreur automatique de macro est récalcitrant à fournir une piste de recherche.
    Je pense que la solution doit se trouver quelque part dans les méthodes et propriétés listées ici :
    https://msdn.microsoft.com/fr-fr/lib.../ff838198.aspx

    Comme je n'en sais pas plus, je te laisse fouiller et tester.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 122
    Points : 53
    Points
    53

    Par défaut ajout d'une image dans un graphe récupérée d'un onglet

    Bonjour,
    merci.
    j'étudie la piste
    http://silkyroad.developpez.com/VBA/ImageList/
    Si vous avez d'autres idées, merci beaucoup par avance

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 122
    Points : 53
    Points
    53

    Par défaut

    rebonjour,
    une autre solution serait d'exporter l'image temporairement qui se trouve dans mon onglet maquette, dans un répertoire
    l'insérer ensuite dans le graphe et enfin la supprimer du répertoire.
    Avez-vous d'autres idées?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    mars 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2009
    Messages : 122
    Points : 53
    Points
    53

    Par défaut

    j'ai enfin trouvé la solution

    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
     
        Set s = Sheets("maquette").Shapes("matrice")
        s.CopyPicture
     
        Sheets("graphe").Activate
        ActiveSheet.ChartObjects.Add(800, 780, s.Width, s.Height).Chart.Paste
        ActiveSheet.ChartObjects(2).Chart.Export Filename:="matrice.png"
     
        ActiveChart.ChartArea.Select
        ActiveChart.PlotArea.Select
        With Selection.Format.Fill
            .Visible = msoTrue
            .UserPicture "matrice.png"
            .TextureTile = msoFalse
        End With
     
        ActiveSheet.ChartObjects(2).Delete

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/05/2008, 12h31
  2. Réponses: 3
    Dernier message: 12/04/2008, 05h14
  3. Réponses: 2
    Dernier message: 10/11/2006, 15h23
  4. [RSS 2.0] Restriction du nombre d'items et ajout d'une image
    Par nath70 dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 09/10/2006, 14h11
  5. Ajout d'une image ds un ListView
    Par Ribéry dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 10/08/2006, 18h56

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