Contrôle d'image VBA
Résolu
Alex
-
Alex -
Alex -
Bonjour tout le monde,
Je souhaite créer dans une feuille un contrôle d'image. Voici le code pour l'instant :
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
DisplayAsIcon:=False, Left:=514.5, Top:=101.25, Width:=311.25, Height _
:=212.25).Select
C'est ce qui me permet de créer le contrôle d'image, puis de modifier sa position et ses dimensions. Mais j'aimerais également pouvoir modifier les paramètres "PictureSizeMode", "BackColor" et "BorderColor". Je souhaite changer la couleur en blanc pour que le contrôle n'apparaisse pas à l'impression (si vous avez une meilleure idée).
Merci d'avance pour vos réponses.
Je souhaite créer dans une feuille un contrôle d'image. Voici le code pour l'instant :
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
DisplayAsIcon:=False, Left:=514.5, Top:=101.25, Width:=311.25, Height _
:=212.25).Select
C'est ce qui me permet de créer le contrôle d'image, puis de modifier sa position et ses dimensions. Mais j'aimerais également pouvoir modifier les paramètres "PictureSizeMode", "BackColor" et "BorderColor". Je souhaite changer la couleur en blanc pour que le contrôle n'apparaisse pas à l'impression (si vous avez une meilleure idée).
Merci d'avance pour vos réponses.
2 réponses
-
Bonjour,
comme ceci
Sub AddImageControl() Dim btn As OLEObject Set btn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _ DisplayAsIcon:=False, Left:=514.5, Top:=101.25, Width:=311.25, Height _ :=212.25) With btn .Object.Picture = LoadPicture("C:\chemin fichier image.jpg") 'chemin de l'image a adapter .Object.PictureSizeMode = fmPictureSizeModeZoom 'a adapter .Object.BorderColor = RGB(255, 0, 0) 'rouge a adapter .Object.BackColor = RGB(0, 128, 64) 'vert a adapter End With End Sub
-
Ah merci c'est génial!
Pour ma gouverne, que signifie "btn"? c'est juste le nom que tu donne à ce que tu créer?
Et j'aurais 2 dernières requêtes, est-ce possible que lorsque se lance la macro, une boite de dialogue s'ouvre pour pouvoir choisir l'image? pck je compte changer d'image à chaque fois...
Et enfin, peut-on compresser l'image dès son insertion grâce à la macro?
Sinon encore merci, c'est vraiment cool!
-
-
btn est une variable, tu mets ce que tu veux.
Il faut savoir que ce code crée à chaque fois un contrôle image. Donc si tu veux mettre une image différente, il faut supprimer le contrôle. voici le code:
Option Explicit Dim chemin Private Sub CommandButton1_Click() chemin = Application _ .GetOpenFilename("Images Files (*.jpg), *.jpg") If chemin <> False Then EffaceImages AddImageControl End If End Sub Sub AddImageControl() Dim btn As OLEObject Set btn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _ DisplayAsIcon:=False, Left:=514.5, Top:=101.25, Width:=311.25, Height _ :=212.25) With btn .Object.Picture = LoadPicture(chemin) 'chemin de l'image .Object.PictureSizeMode = fmPictureSizeModeZoom .Object.BorderColor = RGB(255, 0, 0) 'rouge .Object.BackColor = RGB(0, 128, 64) 'vert End With End Sub Sub EffaceImages() Dim x As Shape For Each x In ActiveSheet.Shapes x.Delete Next x End Sub
l'image en jpg est déjà une image compressée!