Twitter iPhone pliant OnePlus 12 PS5 Disney+ Orange Livebox Windows 11 ChatGPT

avec excel 2007 : inserer une image dans une cellule

3 réponses
Avatar
Alfred WALLACE
Bonjour,
j'ai cherch=E9 (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=E8re une image =E0 partir d'un fichier, ok =E7=E0 marche
mais, en ins=E9rant des noms entre les lignes, les images
ne suivent pas.

est ce que cel=E0 peut etre fait sans macro ?

Merci pour votre aide
Jos=E9

3 réponses

Avatar
Maude Este
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
Avatar
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 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é
Avatar
Alfred WALLACE
Merci à MichD, Maude et Pierre
pour vos idées conseils et codes !
super !

José

On 16 jan, 14:15, "MichD" wrote:
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é