Sub Macro1()
'cette maco adapte la taille photo à la taille de la cellule
'déclaration des variables
Dim dest As Range 'destination
Dim PV As Double 'Position Verticale
Dim PH As Double 'Position Horizontale
Dim L As Double 'Largeur
Dim H As Double 'Hauteur
'définit la variable dest
If Range('A1').Value = '' Then
Set dest = Range('A1') 'A1 si A1 est vide
Else 'sinon
Set dest = Range('A65536').End(xlUp).Offset(1, 0) 'La première ligne vide de la colonne A
End If
dest.Value = ' ' 'met un espace la la cellule Dest
'définition des variables
PV = dest.Top 'haut de la cellule dest
PH = dest.Left 'gauche de la cellule dest
H = dest.Height 'hauteur de la cellule dest
L = dest.Width 'largeur de la cellule dest
'placement et mise à l'échelle de l'image
On Error GoTo fin 'gestion de l'erreur via la balise 'fin' si aucune image n'est sélectionnée
With Selection
.ShapeRange.LockAspectRatio = msoTrue 'conserve le rapport Horizopntal/Vertical de l'image
.ShapeRange.Width = L 'largeur de l'image
If .ShapeRange.Height > H Then .ShapeRange.Height = H 'hauteur de l'image
.ShapeRange.Top = PV + (H - .ShapeRange.Height) / 2 'Position centrée Verticale de l'image
.ShapeRange.Left = PH + (L - .ShapeRange.Width) / 2 'Position centrée Horizontale de l'image
End With
dest.Offset(0, 1).Select 'désélectionne l'image
Exit Sub 'sort de la procédure
fin: 'balise
dest.Value = '' 'vide la cellule dest
MsgBox 'L'image doit ête sélectionnée.' 'message
End Sub