avec excel 2007 : inserer une image dans une cellule

Le
Alfred WALLACE
Bonjour,
j'ai cherché (mal surement) sans trouver.

j'ai une liste de noms (un nom par ligne) et
pour chaque nom (en colonne A par exemple), j'aimerai
avoir dans la cellule de la colonne B une image (c'est
la photo du type)

Si j'insère une image à partir d'un fichier, ok çà marche
mais, en insérant des noms entre les lignes, les images
ne suivent pas.

est ce que celà peut etre fait sans macro ?

Merci pour votre aide
José
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Maude Este
Le #24168051
Bonsour®

"Alfred WALLACE" a écrit
j'ai cherché (mal surement) sans trouver.

j'ai une liste de noms (un nom par ligne) et
pour chaque nom (en colonne A par exemple), j'aimerai
avoir dans la cellule de la colonne B une image (c'est
la photo du type)

un exemple très didactique là :
http://polykromy.com/html/decaler.html

autres exemples là :
http://boisgontierjacques.free.fr/pages_site/lesimages.htm#choixPhoto
MichD
Le #24168191
Bonjour,

La procédure TestMonImage, insère l'image dont le nom du fichier est dans la colonne A
situé dans le répertoire que tu indiqueras. L'image sera aux dimensions de la cellule B

Le nom de l'image dans la colonne B doit avoir aussi l'extension (.jpg) du fichier image
si non, il faut l'ajouter dans la procédure...

'--------------------------------------
Sub TestMonImage()
Dim C As Range
Dim Répertoire As String
Répertoire = "c:Mes images"
With Feuil1
For Each C In .Range("A1:A10")
'Test si le fichier image existe
If Dir(Répertoire & C.Value) <> "" Then
'si oui, l'image est insérée dans la colonne B
InsérerImage .Name, C.Offset(, 1), Répertoire & C.Value
End If
Next
End With

End Sub

'--------------------------------------
Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As String)
Dim Rg As Range
Set Rg = Worksheets(Feuille).Range(RgImage.Address)
With Rg
Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left
Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top
Set Image = Worksheets(Feuille).Pictures.Insert(NomImage)
End With
With Image
.ShapeRange.LockAspectRatio = msoFalse
.Left = Rg.Left + 1
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur - 1.5
'Hauteur de l'image
Image.Height = Hauteur - 1.1
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlMoveAndSize ' xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'--------------------------------------



MichD
------------------------------------------
"Alfred WALLACE" a écrit dans le message de groupe de discussion :


Bonjour,
j'ai cherché (mal surement) sans trouver.

j'ai une liste de noms (un nom par ligne) et
pour chaque nom (en colonne A par exemple), j'aimerai
avoir dans la cellule de la colonne B une image (c'est
la photo du type)

Si j'insère une image à partir d'un fichier, ok çà marche
mais, en insérant des noms entre les lignes, les images
ne suivent pas.

est ce que celà peut etre fait sans macro ?

Merci pour votre aide
José
Alfred WALLACE
Le #24177001
Merci à MichD, Maude et Pierre
pour vos idées conseils et codes !
super !

José

On 16 jan, 14:15, "MichD"
Bonjour,

La procédure TestMonImage, insère l'image dont le nom du fichier est dans la colonne A
situé dans le répertoire que tu indiqueras. L'image sera aux dimensio ns de la cellule B

Le nom de l'image dans la colonne B doit avoir aussi l'extension (.jpg) d u fichier image
si non, il faut l'ajouter dans la procédure...

'--------------------------------------
Sub TestMonImage()
Dim C As Range
Dim Répertoire As String
Répertoire = "c:Mes images"
With Feuil1
    For Each C In .Range("A1:A10")
        'Test si le fichier image existe
        If Dir(Répertoire & C.Value) <> "" Then
            'si oui, l'image est insérée dans la colonne B
            InsérerImage .Name, C.Offset(, 1), Répertoire & C.Value
        End If
    Next
End With

End Sub

'--------------------------------------
Sub InsérerImage(Feuille As String, RgImage As Range, NomImage As Strin g)
Dim Rg As Range
Set Rg = Worksheets(Feuille).Range(RgImage.Address)
    With Rg
        Largeur = .Offset(, 1)(, .Columns.Count).Left - .Left
        Hauteur = .Offset(.Rows.Count).Top - .Item(1).Top
        Set Image = Worksheets(Feuille).Pictures.Insert(NomImag e)
    End With
    With Image
        .ShapeRange.LockAspectRatio = msoFalse
        .Left = Rg.Left + 1
        .Top = Rg.Top
        'Largeur de l'image
        Image.Width = Largeur - 1.5
        'Hauteur de l'image
        Image.Height = Hauteur - 1.1
        'Est-ce que l'image doit se déplacer avec les cellules
        'voici les 3 constantes possibles
        .Placement = xlMoveAndSize ' xlFreeFloating 'or xlmove or xlMoveAndSize
        'Verrouillé ou pas
        .Locked = True 'or False
    End With
    Set Rg = Nothing

End Sub
'--------------------------------------

MichD
------------------------------------------
"Alfred WALLACE"  a écrit dans le message de groupe de discussion :


Bonjour,
j'ai cherché (mal surement) sans trouver.

j'ai une liste de noms (un nom par ligne) et
pour chaque nom (en colonne A par exemple), j'aimerai
avoir dans la cellule de la colonne B une image (c'est
la photo du type)

Si j'insère une image à partir d'un fichier, ok çà marche
mais, en insérant des noms entre les lignes, les images
ne suivent pas.

est ce que celà peut etre fait sans macro ?

Merci pour votre aide
José
Publicité
Poster une réponse
Anonyme