Insertion Image Clipboard dans Commentaires

Bonjour à tous,

Je cherche depuis quelques jours à insérer une images du presse papier dans un commentaire.

J'ai trouvé des codes pour insérer des images dans des commentaires, notamment sur le site très complet de http://boisgontierjacques.free.fr/. J'ai utilisé la macro ci-dessous qui ouvre le dossier où sont stockées les images, l'utilisateur sélectionne un fichier image, puis l'image est insérée dans le commentaire.

Remarque: tout fonctionne bien avec ce code

Sub Essaicom()
  nf = Application.GetOpenFilename("C:\Users\Documents\Matériaux, *png")
  If nf = False Then Exit Sub
  With ActiveCell
    .ClearComments
    .AddComment
    .Comment.Shape.Fill.UserPicture nf
    .Comment.Shape.Height = 50
    .Comment.Shape.Width = 50
    .Comment.Shape.ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft
   End With
End Sub

Maintenant j'essaye de bidouiller le code pour que ce soit l'image dans le presse papier qui soit récupérée et insérée dans le commentaire. Mon objectif, c'est d'éviter de devoir enregistrer chaque image avant de l'utiliser dans mon fichier excel.

J'ai trouvé sur le site de microsoft (https://msdn.microsoft.com/en-us/library/aaxe1e37%28v=vs.90%29.aspx et https://msdn.microsoft.com/fr-fr/library/y2wh3efc%28v=vs.100%29.aspx) la méthode My.Computer.Clipboard.Get.Image qui permet de récupérer une image du presse papier.

J'ai voulu l'utiliser comme ceci mais ça coince:

Sub InserImage()
If My.Computer.Clipboard.ContainsImage() Then
   Dim nf As System.Drawing.Image
   nf = My.Computer.Clipboard.GetImage()
  With ActiveCell
    .ClearComments
    .AddComment
    .Comment.Shape.Fill.UserPicture nf
    .Comment.Shape.Height = 50
    .Comment.Shape.Width = 50
    .Comment.Shape.ScaleHeight 1.2, msoFalse, msoScaleFromTopLeft
   End With
End Sub

J'ai un message d'erreur:

Erreur de compilation: Type défini par l'utilisateur non défini

Est-ce que quelqu'un pourrait m'aider à utiliser My.Computer.Clipboard.Get.Image?

Je crois que je défini mal le type de nf ou bien qu'il me manque une librairie que je dois télécharger, ou alors une erreur de syntaxe.

J'essaye de creuser toutes ces pistes mais je suis très fréquemment bloquée par des notions que je ne comprends pas ou bien je ne trouve simplement pas de réponses.

Merci pour votre aide et vos conseils!

Bonjour,

"My.Computer.Clipboard.Get.Image()" c'est du VB.Net rien à voir avec VBA.

Tu n'as pas trop le choix que d'utiliser le chemin de l'image pour la mettre dans le commentaire.

Bonjour à tous,

Avec ce subterfuge :

J’ai utilisé une feuille "temp" et par la macro j'insère un graphique pour y coller l'image

J’enregistre l’image temporairement "C:\temp\MonImage.gif"

Puis le fichier "C:\temp\MonImage.gif" est effacé.

Sub ImageCommentaire()
'à partir d'une copie d'image
With Worksheets("temp").ChartObjects.Add(0, 0, 100, 100).Chart
    .Paste 'colle l'image dans un graphique temporaire
    .Export "C:\temp\MonImage.gif", "GIF" 'Sauvegarde au format image
End With
Range("D4").Comment.Shape.Fill.UserPicture "C:\temp\MonImage.gif" 'adapter à la cellule du commentaire
Kill "C:\temp\MonImage.gif"
End Sub

Édit: ajout du fichier

Merci beaucoup , je reviens vers vous demain.

EDIT:

J'ai essayé le code de SabV ce matin et ça marche! Merci beaucoup.

Pour les détails:

Theze a écrit :

Bonjour,

"My.Computer.Clipboard.Get.Image()" c'est du VB.Net rien à voir avec VBA.

Tu n'as pas trop le choix que d'utiliser le chemin de l'image pour la mettre dans le commentaire.

Je débute en VBA, (j'ai commencé la semaine dernière ) et je ne savais pas du tout ce qu'était VB.Net. J'ai fait une recherche rapide après avoir lu ton post, notamment sur la différence entre VB, VBA et VB.Net. Je vois maintenant à quel point je faisais fausse route avec ma première idée

sabV a écrit :

Bonjour à tous,

Avec ce subterfuge :

J’ai utilisé une feuille "temp" et par la macro j'insère un graphique pour y coller l'image

J’enregistre l’image temporairement "C:\temp\MonImage.gif"

Puis le fichier "C:\temp\MonImage.gif" est effacé.

Sub ImageCommentaire()
'à partir d'une copie d'image
With Worksheets("temp").ChartObjects.Add(0, 0, 100, 100).Chart
    .Paste 'colle l'image dans un graphique temporaire
    .Export "C:\temp\MonImage.gif", "GIF" 'Sauvegarde au format image
End With
Range("D4").Comment.Shape.Fill.UserPicture "C:\temp\MonImage.gif" 'adapter à la cellule du commentaire
Kill "C:\temp\MonImage.gif"
End Sub

Édit: ajout du fichier

Encore merci pour ton aide. Les images dans les commentaire semblaient floues. Alors pour avoir des images "plus nettes", j'ai modifié la macro en remplaçant

With Worksheets("temp").ChartObjects.Add(0, 0, 100, 100).Chart

par

With Worksheets("temp").ChartObjects.Add(0, 0, 500, 500).Chart

et ça marche nickel , c'est magnifique

Je vous propose une vue d'ensemble sur mon projet pour mieux comprendre pourquoi je voulais faire des insertions d'images en commentaire.

J'ai un tableau recensant les articles scientifiques que j'étudie. J'ai une colonne pour le titre, pour le nom des auteurs, le numéro de DOI, l'année de publication, ect. Mon objectif est d'enrichir le tableau en notant un résumé de l'article et surtout des commentaires pour l'avancée de ma recherche. Seulement, expliquer des notions scientifiques complexes en quelques mots dans une cellule de tableau excel, c'est pas toujours évident alors je me suis dit qu'avec des images pour illustrer mes propos ce serait beaucoup plus simple (le tableau servira d'outils pour d'autres personnes qui devront comprendre de quoi traite l'article sans avoir le lire).

Une de mes premières idées était de faire des fiches pour chaque article avec un lien hypertexte pour accéder à la fiche. mais avoir des liens nécessite un dossier de fichiers partagés avec toutes les fiches et je suis quasiment sûre que ce dossier risque d'être déplacé/perdu/supprimé par erreur après mon départ et donc que tout mon travail serait perdu.

J'essaye en ce moment de créer un formulaire personnalisé pour remplir ce fameux tableau. A suivre donc

Rechercher des sujets similaires à "insertion image clipboard commentaires"