Bonjour,
Je me permets de vous solliciter à nouveau car je sèche sur le fait de réduire une image.
Je vous explique :
J'ai des images que j'insère dans une cellule en fonction d'un lien hypertexte.
Ces différentes images n'ont jamais la même taille.
Je voudrais, tout en gardant la proportion de l'image, que celles-ci soient centrées dans le haut de la cellule de destination. Les cellules de destination sont toutes de la même taille.
Il ne faut pas que les images dépassent de la cellule.
Taille de la cellule de destination : Hauteur : 100 et Largeur : 40
J'ai écrit une macro que vous trouverez ci-dessous :
For Each c In Selection
fich = c.Value
If fich <> "" Then
c.RowHeight = 100 'fixer la hauteur de ligne
ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = 84
If Height > 84 Then Height = 84
If .Width > 40 Then Height = 20
.Left = c.Offset(0, r).Left + 1
.IncrementLeft (ActiveCell.Width - Selection.ShapeRange.Width) / 2
.Top = c.Top + 2 'et positionner verticalement
End With
End If
Next c
Merci pour votre aide
Fred
Je me permets de vous solliciter à nouveau car je sèche sur le fait de réduire une image.
Je vous explique :
J'ai des images que j'insère dans une cellule en fonction d'un lien hypertexte.
Ces différentes images n'ont jamais la même taille.
Je voudrais, tout en gardant la proportion de l'image, que celles-ci soient centrées dans le haut de la cellule de destination. Les cellules de destination sont toutes de la même taille.
Il ne faut pas que les images dépassent de la cellule.
Taille de la cellule de destination : Hauteur : 100 et Largeur : 40
J'ai écrit une macro que vous trouverez ci-dessous :
For Each c In Selection
fich = c.Value
If fich <> "" Then
c.RowHeight = 100 'fixer la hauteur de ligne
ActiveSheet.Pictures.Insert(fich).Select 'ouverture image
With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = 84
If Height > 84 Then Height = 84
If .Width > 40 Then Height = 20
.Left = c.Offset(0, r).Left + 1
.IncrementLeft (ActiveCell.Width - Selection.ShapeRange.Width) / 2
.Top = c.Top + 2 'et positionner verticalement
End With
End If
Next c
Merci pour votre aide
Fred