|
 |
Le contrôle "Image" (Picture)
Pour cet exemple nous allons créer un userform avec une zone de liste (combobox), un contrôle image et un bouton de commande. En sélectionnant un élément dans la zone de liste l'image du contrôle changera, un clique sur le bouton de commande affichera l'image dans la feuille.
Télécharge le fichier formimg.zip (voir lien en bas) copie
le tout sur ton disque: le répertoire "formimg" avec les images au format jpg et le fichier exemple usfimg.xls
Création de l'userform
1- Crée un userform
Propriété =>(Name) et nomme l'userform "formimg"
2- Place une zone de liste en haut
3- Le contrôle image en dessous
Propriété => PictureSizeMode => 3- fmPictureSizeModeZoom
pour ajuster l'image au contrôle
4- Le bouton de commande tout en bas.
Propriété =>Caption : Insertion de la jaquette sur la feuille

Dans la feuille 1 du classeur
Place un bouton et affecte lui ce code pour afficher l'userform
Sub ShowForm()
Load formimg
formimg.Show
End Sub
Dans les cellules D1 à D5 tape le nom de fichier des images sans l'extension (anneaux, jurassic, mohican, pocahontas, roilion). Il est possible d'en ajouter la macro en tiendra compte.

Le code
Il faut initialiser l'userform et la zone de liste (ComboBox1)
Dans l'éditeur VB, double-clique sur l'userform ou bien
clique droit sur le nom de l'userform et "Code".

Dans la liste déroulante gauche en haut du code clique sur "Userform"
dans celle de droite clique sur "Initialize"


Ce bout de code est créé automatiquement:
Private Sub UserForm_Initialize()
End Sub
Tape ce code entre les 2 lignes:
ComboBox1.RowSource = "D1:D" & ActiveSheet.UsedRange.Rows.Count
ComboBox1.ListIndex = 0
La première pour initialiser la ComboBox1 et la deuxième pour sélectionner le
premier élément de la liste (Cellule D1)
Ce qui donne:
Private Sub UserForm_Initialize()
' Initialisation de la liste de la ComboBox1
ComboBox1.RowSource = "D1:D" & ActiveSheet.UsedRange.Rows.Count
' Sélection de l'index 1 de la liste
ComboBox1.ListIndex = 0
End Sub
Il faut indiquer le nom et le chemin des images à la ComboBox1 et charger l'image
Double-clique sur la ComboBox1 et tape ce code:
Private Sub ComboBox1_Change()
'Le mot clé "Me" remplace le nom de l'userform ("formimg")
nom = Me.ComboBox1.Value
On Error Resume Next
Fichier = ActiveWorkbook.Path & "\" & nom & ".jpg"
Me.Image1.Picture = LoadPicture(Fichier)
End Sub
Il faut affecter ce code au CommandButton1 qui place l'image sur la feuille.
Double-clique sur le CommandButton1 et tape ce code:
Private Sub CommandButton1_Click()
On Error Resume Next
nom2 = Me.ComboBox1.Value
Fichier2 = ActiveWorkbook.Path & "\" & nom2 & ".jpg"
ActiveSheet.Shapes("LaJacket").Delete
Range("B6").Select
ActiveSheet.Pictures.Insert(Fichier2).Select
Selection.ShapeRange.Name = "LaJacket"
[A1].Select
On Error GoTo 0
End Sub
Et voilà le résultat
  formimg.zip  100 ko Télécharge l'exemple et les images
Prochaine étape: Contrôler la saisie d'une textbox
[top]
|