Re,
Bon, j'ai refait un peu la macro.
Maintenant sélectionner les cellules où sont les liens pointant sur une image.
En répondant à la 1ère boite de dialogue par 'oui', 'non' ou 'annuler' l'image s'affichera dans la colonne à gauche, ou dans celle du lien ou dans celle de droite (en fait bouton de gauche affiche à gauche etc).
Puis la 2nde boite de dialogue permet de choisir la hauteur des ligne (donc des image). La hauteur par défaut (75) peut être changé en début de code en changeant la valeur de la constante hDefaut.
Sub AffImage2()
' Sélectionner les cellules contenant un lien vers une image
' AffImage les affichera sur le lien ou dans la colonne de gauche ou de droite
Const hDefaut = 75
Dim msg As String, r As Long, h As Long
Dim c As Range
msg = "Oui : Afficher les images à gauche des liens sélectionnés" & vbCrLf
msg = msg & "Non : Afficher les images sur les liens sélectionnés" & vbCrLf
msg = msg & "Annuler : Afficher les images à droite des liens sélectionnés"
r = MsgBox(msg, vbYesNoCancel, "Cellules où mettre les images")
If r = vbYes Then
r = -1
ElseIf r = vbNo Then
r = 0
Else
r = 1
End If
h = InputBox("Hauteur des lignes :", "Choix hauteur", hDefaut)
For Each c In Selection
'c.ColumnWidth = 20
fich = c.Value
If fich <> "" Then
c.RowHeight = h 'fixer la hauteur de ligne
ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
With Selection.ShapeRange
.LockAspectRatio = msoTrue 'conserver les proportion
.Height = h - 4 'hauteur de l'image = hauteur des lignes - 4
.Left = c.Offset(0, r).Left + 2 'à gauche colonne A (sinon tu calcules avec la largeur de colonne des colonnes
.Top = c.Top + 2 'et positionner verticalement
End With
End If
Next c
End Sub
eric