Redimensionner une image dans une plage de cellule avec une marge à gauche

Bonjour tout le monde,

Je vais essayer d'être le plus clair possible dans ma demande:

J'ai créé une macro qui me permet de redimensionner une image pour qu'elle s'insère dans une plage de cellule donnée. Ca fonctionne. En plus, j'aimerais ajouter une fine marge à gauche de ma photo pour y ajouter des légendes. Pour ce faire, j'ai modifier légèrement mon code en mettant "Left = Emplacement.Left +12". Le problème c'est que ça décale également mon image de +12 vers la droite et ça la fait sortir du cadre!

Je souhaiterais créer cette marge de +12 sans pour autant décaler l'image de +12 vers la droite. J'accepte la déformation de l'image.

Voici mon code et une illustration du problème. Merci d'avance

Sub InsertionImage2()
Dim Emplacement As Range
Dim image As Object
Dim ShapeObj As Object

    Set Emplacement = Range("C21:G32")

    Set image = ActiveSheet.Pictures.Paste
    With image.ShapeRange
        .LockAspectRatio = msoFalse
        .Left = Emplacement.Left + 12
        .Top = Emplacement.Top
        .Height = Emplacement.Height
        .Width = Emplacement.Width
    End With

End Sub
capture

Bonjour

avec ceci

        .Height = Emplacement.Height 'hauteur
        .Width = Emplacement.Width 'largeur

tu définit la hauteur et largeur de l'image...

donc si tu veux que ton image soit de 12" plus petit en largeur... il faut jouer sur la largeur... donc je mettrais :

.Width = Emplacement.Width -12 'largeur

A vérifier en gardant le reste à l'identique

Fred

Bonjour Fred,

Avec ce que tu proposes, ma largeur devient bonne mais mon image ne se décale pas de 12 vers la droite comme je le souhaite, elle reste collée au cadre à gauche. Cela est du aux instructions Top et Left. Connaîtrais-tu une instruction qui permettrai de décaler une image vers la droite? Dans ce cas, je pourrais l'utiliser pour décaler mon image de 12 une fois lui avoir donné la bonne largeur.

Re bonjour

essai en inversant les lignes : donc remplacer

    With image.ShapeRange
        .LockAspectRatio = msoFalse
        .Left = Emplacement.Left + 12
        .Top = Emplacement.Top
        .Height = Emplacement.Height
        .Width = Emplacement.Width -12
    End With

par

    With image.ShapeRange
        .LockAspectRatio = msoFalse
        .Height = Emplacement.Height
        .Width = Emplacement.Width -12
        .Left = Emplacement.Left + 12
        .Top = Emplacement.Top

    End With

Sinon fournit un fichier test... pour que je regarde de plus près...

Fred

C'est tout bon!

Merci à toi :)

Dans ce cas...

fred

Rechercher des sujets similaires à "redimensionner image plage marge gauche"