Macro excel d'insertion image

Dr Funk -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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