Macro excel d'insertion image

Fermé
Dr Funk - 5 mars 2008 à 21:35
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 5 mars 2008 à 22:12
Bonsoir à tous,

je planche sur un problème de macro Excel, avec laquelle je compte récupérer le chemin d'une image stocké dans une cellule pour l'insérer dans la feuille. Pour tout vous dire, j'ai découvert le langage il y a une petite heure, mais j'ai quand même réussi à me débrouiller avec ce que j'ai pu trouver sur Internet...

Cependant, j'ai une erreur de type "Erreur d'exécution 1004 : la méthode Insert de la classe Pictures a échoué". Je précise que j'utilise Excel 2003.

Voilà le morceau de code en cause :

Range("B15").Select ' B15 contient "C:\...\monimage.jpg"
Dim a As String
a = ActiveCell.Value
ActiveSheet.Pictures.Insert (a)

Pouvez-vous me débloquer?
Merci d'avance.

Dr Funk
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 mars 2008 à 22:03
Salut docteur,

tiré de l'aide Ms

Set myDocument = Worksheets(1)
myDocument.Shapes.AddPicture _
"c:\microsoft office\clipart\music.bmp", _
True, True, 100, 100, 70, 70


AddPicture, méthode


Cette méthode crée une image à partir d'un fichier existant. Elle renvoie un objet Shape qui représente la nouvelle image.

Syntaxe

expression.AddPicture(FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height)

expression Obligatoire. Expression qui renvoie un objet Shapes.

FileName Argument de type String obligatoire. Fichier à partir duquel l'objet OLE doit être créé.

LinkToFile Argument de type Long obligatoire. Cet argument a la valeur True pour lier l'image au fichier à partir duquel elle a été créée. Il a la valeur False pour transformer l'image en une copie indépendante du fichier.

SaveWithDocument Argument de type Long obligatoire. Cet argument a la valeur True pour enregistrer l'image liée avec le document dans lequel elle est insérée. Il a la valeur False pour stocker seulement les informations de liaison dans le document. Cet argument doit avoir la valeur True si l'argument LinkToFile a la valeur False.

Left, Top Argument de type Single obligatoire. Position (en points) du coin supérieur gauche de l'image par rapport au coin supérieur gauche du document.

Width, Height Argument de type Single obligatoire. Largeur et hauteur de l'image, en points.

A+
Michel
1
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 mars 2008 à 22:12
bonjour

Tu peux remplacer toutes tes lignes par celle-ci qui devrait fonctionner.
ActiveSheet.Pictures.Insert ([B15])

ou pour la postionner à un endroit précis

ActiveSheet.Shapes.AddPicture [B15], True, True, 100, 100, 70, 70
en faisant varier les positions par exemple
ActiveSheet.Shapes.AddPicture [B15], True, True, [A10].Left, [A10].Top,  [A10].Width ,  [A10].Height  
pour positionner en A10

Quand tu enregistres, l'enregistreur rajoute des "select" pour tout mémoriser mais en fait tu n'en as pas besoin.
0