Bonjour,

C'est encore moi avec mes images !
Bon... J'ai un UserForm dans lequel je charge 32 images.
Par la suite, je souhaite pouvoir les "retirer" quand je clique dessus.

Ainsi, grâce à l'aide de Robert et Patrick, j'initialise mon UserForm de la sorte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Option Explicit
 
Dim MesImages(1 To 32) As New Classe1
 
Private Sub UserForm_Initialize()
Dim i As Byte
 
For i = 1 To 32
    Set MesImages(i).Bt = Me.Controls("Image" & i)
    MesImages(i).Id_Joueur = Int((i - 1) / 8 + 1)
Next i
 
Call Load_image
 
End Sub
Je charge mes images (dans un module) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Sub Load_image()
Dim i As Byte, j As Byte
 
For j = LBound(oJoueur, 1) To UBound(oJoueur, 1)
    For i = LBound(oJoueur, 2) To UBound(oJoueur, 2)
        UserForm1.Controls("Image" & (j - 1) * 8 + i).Picture = LoadPicture("mon_chemin" & oJoueur(j, i).Nombre & "_" & oJoueur(j, i).Couleur & ".jpg")
        UserForm1.Controls("Image" & (j - 1) * 8 + i).Tag = oJoueur(j, i).Nombre & "_" & oJoueur(j, i).Couleur
        UserForm1.Controls("Image" & (j - 1) * 8 + i).PictureSizeMode = 1
    Next i
Next j
 
End Sub
Et quand je clique dessus (dans un module de classe) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public WithEvents Bt As MSForms.Image
Public Id_Joueur As Byte
 
Private Sub Bt_Click()
Dim oStr() As String
 
'Bt.Picture = LoadPicture()
MsgBox Bt.Picture 'Premier point
Bt.Picture = Nothing
MsgBox Bt.Picture 'Second point
Bt.PictureSizeMode = 0
oStr = Split(Bt.Tag, "_")
 
UserForm1.Controls("Carte_J" & Id_Joueur).Picture = LoadPicture("mon_chemin" & oStr(LBound(oStr)) & "_" & oStr(UBound(oStr)) & ".jpg")
UserForm1.Controls("Carte_J" & Id_Joueur).PictureSizeMode = 1
 
Call Poser_carte(oStr(LBound(oStr)), oStr(UBound(oStr)), Id_Joueur)
 
'MsgBox Id_Joueur
 
End Sub
Or, quand j'applique la méthode Bt.Picture = LoadPicture("") ou Bt.Picture = LoadPicture() ou Bt.Picture = Nothing l'image ne disparaît pas "physiquement"... J'entend par là que je peux toujours la voir... Cependant, il semble que le lien entre mon image et le UserForm soit bien supprimé...

Dans le code précédent, j'ai précisé deux commentaires.
Le 'Premier point me permet de récupérer une valeur pour m'assurer que l'image est bien sétée :
Nom : exe1.png
Affichages : 1387
Taille : 2,5 Ko
Ensuite, je tente de supprimer l'image et là, erreur :
Nom : exe2.png
Affichages : 1577
Taille : 4,8 Ko
... sur la ligne :
Nom : exe3.png
Affichages : 1395
Taille : 3,6 Ko

Donc je pense bien que l'image n'est plus liée mais... elle est toujours visible...
Nom : exe4.png
Affichages : 1458
Taille : 9,8 Ko
Qu'est-ce que je fais de mal ?

Par avance, je vous remercie et reste disponible pour tout complément !

Cordialement,
Kimy