[vb.net 2005] - Création & Récupération de propriété
16 réponses
Scottmat
Bonsoir à tous
Franchement merci aux personnes qui me répondront pcq je suis en panique
total !!!
Sa doit etre tout simple, une petit bout de ligne de code mais j'arrive pas
à voir comment
Voici mon petit problème :
Je voulais insérer une image dans un Richtextbox tout simplement
et j'ai voulu rajouter une propriété "Emplacement" (qui enregistrerai
l’emplacement de l’image qui à été insérer)
D’abord une classe générale (avec ma nouvelle propriété) :
Public Interface Element
Property Emplacement() As String
End Interface
Puis propre à l’objet image :
Imports System.ComponentModel
<Serializable()> Public MustInherit Class IMGElement
Implements Element
Dim _sEmplacementImG As String = ""
Dim ImG As New System.Drawing.Rectangle
Public Property EmplacementImG() As String Implements Element.EmplacementImG
Get
Return _sEmplacementImG
End Get
Set(ByVal value As String)
_sEmplacementImG = value
End Set
End Property
End Class
Ensuite la class qui définit l’ajout dans le Richtextbox de l’élément :
Public Class RectangleSimple
Inherits IMGElement
Public Sub add_pictures_to_rtb(ByVal pic As Image, ByVal rtb As RichTextBox,
ByVal index As Integer)
Dim a As Integer
Dim b As Integer
Dim tmpobj As Object
tmpobj = Clipboard.GetDataObject
Clipboard.SetDataObject(pic)
a = rtb.SelectionStart
b = rtb.SelectionLength
rtb.SelectionLength = 0
rtb.SelectionStart = index
rtb.Paste()
Clipboard.SetDataObject(tmpobj)
If index >= a Then a += 1
rtb.SelectionStart = a
rtb.SelectionLength = b
End Sub
End Class
Et pour terminer le code qui insérera l’élément à l’aide d’une boite de
dialogue (sur un événement bouton) :
Private Sub BtnInsertImg_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnInsertImg.Click
Try
Dim a As New InsertionImage ()
Dim OpenFiles As New OpenFileDialog
If OpenFiles.ShowDialog = Windows.Forms.DialogResult.OK Then
a.EmplacementImG = OpenFiles.FileName
a.add_pictures_to_rtb(New Bitmap(OpenFiles.FileName), Richtextbox,
Richtextbox.SelectionStart)
End If
Catch ex As Exception
MessageBox.Show("Impossible d'inserer cette image !", MessageBoxButtons.OK,
MessageBoxIcon.Warning)
End Try
End Sub
Donc j’ai créé ma propriété EmplacementImG. J’ai affecter la valeur de cette
propriété par l’emplacement d’origine de l’image quand l’on clique sur OK de
la boite de dialogue " Inserer une image".
Le problème c’est que je n’arrive pas à récupéré cette propriété lorsque
l’utilisateur sélectionne une image.
=> Un Object (Class image) créer dans un autre objet (richtextbox) ! Comment
faire ???? je crack j'ai passer trop de nuit & d'heure dessus et je n'arrive
pas a comprendre comment récupéré cette valeur !!
Sa doit etre tout béte à mon avis ...
Merci par avance en tout cas, à celui ou celle qui m’aidera
as-tu vérifier en debug si après ta ligne a.EmplacementImG = OpenFiles.FileName a.EmplacementImG contient bel et bien la valeur.
Lorsque tu veux récupérer cette valeur es-tu en dehors de la méthode BtnInsertImg_Click? Parce que ton objet "a New InsertionImage" est locale à ta fonction et c'est cet objet seulement qui aura la valeur. Lorsque tu sors de l'événement ton objet n'est plus accessible.
Normalement pour récupérer la valeur tu n'aurais qu'à faire a.EmplacementImG.
J'espère que cela te viendra en aide.
as-tu vérifier en debug si après ta ligne a.EmplacementImG =
OpenFiles.FileName
a.EmplacementImG contient bel et bien la valeur.
Lorsque tu veux récupérer cette valeur es-tu en dehors de la méthode
BtnInsertImg_Click? Parce que ton objet "a New InsertionImage" est
locale à ta fonction et c'est cet objet seulement qui aura la valeur.
Lorsque tu sors de l'événement ton objet n'est plus accessible.
Normalement pour récupérer la valeur tu n'aurais qu'à faire
a.EmplacementImG.
as-tu vérifier en debug si après ta ligne a.EmplacementImG = OpenFiles.FileName a.EmplacementImG contient bel et bien la valeur.
Lorsque tu veux récupérer cette valeur es-tu en dehors de la méthode BtnInsertImg_Click? Parce que ton objet "a New InsertionImage" est locale à ta fonction et c'est cet objet seulement qui aura la valeur. Lorsque tu sors de l'événement ton objet n'est plus accessible.
Normalement pour récupérer la valeur tu n'aurais qu'à faire a.EmplacementImG.
J'espère que cela te viendra en aide.
Scottmat
tout d'abord un grand merci de m'avoir répondu ! j'ai vérifier elle (la propriété) contient bien la valeur
est local à ma fonction ? j'ai du mal à suivre la ! Si par exemple je déclare par : Dim ObjetImage as New InsertionImage ac New il va recréer et non récupéré l'objet ? surtout arréte moi si je dit une connerie ! mais oui comme tu di juste a.EmplacementImG mais selon l'objet que l'utilisateur à sélectionner dans le richtextbox ! Donc j'ai essayer je ne sais pas combien de ligne de code à m'arracher les cheveux ! Mais logiquement la syntaxe simplifié serait : Me.RichtextBox1.Object sélectionner. propriété EmplacementImg ! mais je ne sais pas comment tourner ce bout de code.
tout d'abord un grand merci de m'avoir répondu !
j'ai vérifier elle (la propriété) contient bien la valeur
est local à ma fonction ? j'ai du mal à suivre la !
Si par exemple je déclare par :
Dim ObjetImage as New InsertionImage ac New il va recréer et non récupéré
l'objet ? surtout arréte moi si je dit une connerie !
mais oui comme tu di juste a.EmplacementImG mais selon l'objet que
l'utilisateur à sélectionner dans le richtextbox ! Donc j'ai essayer je ne
sais pas combien de ligne de code à m'arracher les cheveux ! Mais logiquement
la syntaxe simplifié serait :
Me.RichtextBox1.Object sélectionner. propriété EmplacementImg !
mais je ne sais pas comment tourner ce bout de code.
tout d'abord un grand merci de m'avoir répondu ! j'ai vérifier elle (la propriété) contient bien la valeur
est local à ma fonction ? j'ai du mal à suivre la ! Si par exemple je déclare par : Dim ObjetImage as New InsertionImage ac New il va recréer et non récupéré l'objet ? surtout arréte moi si je dit une connerie ! mais oui comme tu di juste a.EmplacementImG mais selon l'objet que l'utilisateur à sélectionner dans le richtextbox ! Donc j'ai essayer je ne sais pas combien de ligne de code à m'arracher les cheveux ! Mais logiquement la syntaxe simplifié serait : Me.RichtextBox1.Object sélectionner. propriété EmplacementImg ! mais je ne sais pas comment tourner ce bout de code.
mlp code
oui effectivement à chaque new il crée un nouvel objet et oui comme du dit tu n'aurais juste a faire Me.richtextbox1.selectedindex.emplacementImg.
Cependant je n'ai pas vu dans ton code où tu ajoutais ton objet à ton richtextbox1. Je n'ai jamais travailler avec un richtextbox mais je sais que si tu veux récupérer une valeur dans celui-ci tu dois l'avoir ajouté avant.
oui effectivement à chaque new il crée un nouvel objet et oui comme
du dit tu n'aurais juste a faire
Me.richtextbox1.selectedindex.emplacementImg.
Cependant je n'ai pas vu dans ton code où tu ajoutais ton objet à ton
richtextbox1. Je n'ai jamais travailler avec un richtextbox mais je
sais que si tu veux récupérer une valeur dans celui-ci tu dois
l'avoir ajouté avant.
oui effectivement à chaque new il crée un nouvel objet et oui comme du dit tu n'aurais juste a faire Me.richtextbox1.selectedindex.emplacementImg.
Cependant je n'ai pas vu dans ton code où tu ajoutais ton objet à ton richtextbox1. Je n'ai jamais travailler avec un richtextbox mais je sais que si tu veux récupérer une valeur dans celui-ci tu dois l'avoir ajouté avant.
mlp code
local à la fonction, ça veux dire que tu as déclaré ta variable dans ta fonction (ici dans l'événement click) et lorsque tu sors de cette fonction toutes les variables que tu as déclaré n'existe plus. Si tu veux les conserver il faut que tu les assigne à un objet global (exemple un controle) où que tu te déclare une variable globale.
local à la fonction, ça veux dire que tu as déclaré ta variable
dans ta fonction (ici dans l'événement click) et lorsque tu sors de
cette fonction toutes les variables que tu as déclaré n'existe plus.
Si tu veux les conserver il faut que tu les assigne à un objet global
(exemple un controle) où que tu te déclare une variable globale.
local à la fonction, ça veux dire que tu as déclaré ta variable dans ta fonction (ici dans l'événement click) et lorsque tu sors de cette fonction toutes les variables que tu as déclaré n'existe plus. Si tu veux les conserver il faut que tu les assigne à un objet global (exemple un controle) où que tu te déclare une variable globale.
Scottmat
si si voici mon code dans lequel est insérer l'image :
Private Sub BtnInsertImg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInsertImg.Click Try Dim a As New InsertionImage () Dim OpenFiles As New OpenFileDialog
If OpenFiles.ShowDialog = Windows.Forms.DialogResult.OK Then a.EmplacementImG = OpenFiles.FileName a.add_pictures_to_rtb(New Bitmap(OpenFiles.FileName), Richtextbox, Richtextbox.SelectionStart) End If
Catch ex As Exception MessageBox.Show("Impossible d'inserer cette image !", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try End Sub
comme tu le voi c'est à l'événement click d'un bouton et c'est ici qu'est complété la propriété 'EmplacementImg' ! et ensuite dans un deuxiéme temps récupéré les données quand l'utilisateur double click sur une image se trouvant dans le richtextbox
si si voici mon code dans lequel est insérer l'image :
Private Sub BtnInsertImg_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnInsertImg.Click
Try
Dim a As New InsertionImage ()
Dim OpenFiles As New OpenFileDialog
If OpenFiles.ShowDialog = Windows.Forms.DialogResult.OK Then
a.EmplacementImG = OpenFiles.FileName
a.add_pictures_to_rtb(New Bitmap(OpenFiles.FileName), Richtextbox,
Richtextbox.SelectionStart)
End If
Catch ex As Exception
MessageBox.Show("Impossible d'inserer cette image !", MessageBoxButtons.OK,
MessageBoxIcon.Warning)
End Try
End Sub
comme tu le voi c'est à l'événement click d'un bouton et c'est ici qu'est
complété la propriété 'EmplacementImg' !
et ensuite dans un deuxiéme temps récupéré les données quand l'utilisateur
double click sur une image se trouvant dans le richtextbox
si si voici mon code dans lequel est insérer l'image :
Private Sub BtnInsertImg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInsertImg.Click Try Dim a As New InsertionImage () Dim OpenFiles As New OpenFileDialog
If OpenFiles.ShowDialog = Windows.Forms.DialogResult.OK Then a.EmplacementImG = OpenFiles.FileName a.add_pictures_to_rtb(New Bitmap(OpenFiles.FileName), Richtextbox, Richtextbox.SelectionStart) End If
Catch ex As Exception MessageBox.Show("Impossible d'inserer cette image !", MessageBoxButtons.OK, MessageBoxIcon.Warning) End Try End Sub
comme tu le voi c'est à l'événement click d'un bouton et c'est ici qu'est complété la propriété 'EmplacementImg' ! et ensuite dans un deuxiéme temps récupéré les données quand l'utilisateur double click sur une image se trouvant dans le richtextbox
mlp code
si c'est une application web essaye ceci :
essaye de mettre ceci avant d'ajouter ton image.(add_...)
normalement sur le doubleclick(si le contrôle le gère) il devrait t'afficher une alerte avec ce qui se trouve dans a.EmplacementImG(ici le path de l'image je crois), si ça marche tu modifiras pour faire ce que tu veux. Tu n'auras qu'à mettre ta fonction javascript dans la partie de droite.
Sinon si c'est une application normal(Forms) :
À ce que j'ai compris le richtextboxt permet d'ajouter un contrôle image en plus du text. Le problème c'est que la sélection ne ce fait par rapport au index dans ce cas-ci mais comme une sélection normal(texte).
faudrait que tu essaie quelque chose du genre
for each item as InsertionImage in richtextbox.controls if item.selected = true then 'là tu pourras accéder à ta propriété item.emplacementImg end if next
sinon peut-être que le richtextbox n'est pas approprié pour ce que tu veux faire, faudrait que tu vérifie.
Dit moi ce que tu veux faire au juste si mes suggestions n'ont pas fonctionné.
si c'est une application web essaye ceci :
essaye de mettre ceci avant d'ajouter ton image.(add_...)
normalement sur le doubleclick(si le contrôle le gère) il devrait
t'afficher une alerte avec ce qui se trouve dans a.EmplacementImG(ici
le path de l'image je crois), si ça marche tu modifiras pour faire ce
que tu veux. Tu n'auras qu'à mettre ta fonction javascript dans la
partie de droite.
Sinon si c'est une application normal(Forms) :
À ce que j'ai compris le richtextboxt permet d'ajouter un contrôle
image en plus du text. Le problème c'est que la sélection ne ce fait
par rapport au index dans ce cas-ci mais comme une sélection
normal(texte).
faudrait que tu essaie quelque chose du genre
for each item as InsertionImage in richtextbox.controls
if item.selected = true then
'là tu pourras accéder à ta propriété
item.emplacementImg
end if
next
sinon peut-être que le richtextbox n'est pas approprié pour ce que tu
veux faire, faudrait que tu vérifie.
Dit moi ce que tu veux faire au juste si mes suggestions n'ont pas
fonctionné.
normalement sur le doubleclick(si le contrôle le gère) il devrait t'afficher une alerte avec ce qui se trouve dans a.EmplacementImG(ici le path de l'image je crois), si ça marche tu modifiras pour faire ce que tu veux. Tu n'auras qu'à mettre ta fonction javascript dans la partie de droite.
Sinon si c'est une application normal(Forms) :
À ce que j'ai compris le richtextboxt permet d'ajouter un contrôle image en plus du text. Le problème c'est que la sélection ne ce fait par rapport au index dans ce cas-ci mais comme une sélection normal(texte).
faudrait que tu essaie quelque chose du genre
for each item as InsertionImage in richtextbox.controls if item.selected = true then 'là tu pourras accéder à ta propriété item.emplacementImg end if next
sinon peut-être que le richtextbox n'est pas approprié pour ce que tu veux faire, faudrait que tu vérifie.
Dit moi ce que tu veux faire au juste si mes suggestions n'ont pas fonctionné.
Scottmat
merci en tous cas de te pencher sur mon probléme ! bin c'est une application Windows Forms en fait' et non Web, j'ai tester ton code il m'affiche 'item.selected' en erreur en me disant : " 'selected' n'est pas un membre de 'WindowsApplication.RectangleSimple'." sinon j'ai changer :
for each item as InsertionImage in richtextbox.controls if item.selected = true then 'là tu pourras accéder à ta propriété item.emplacementImg end if next
par :
For Each item As RectangleSimple In Message.Controls If item.selected = True Then 'là tu pourras accéder à ta propriété item.EmplacementImG() End If Next
car il me trouver une erreur à InsertionImage car c'est la méthode pour insérer des images donc j'ai changer par RectangleSimple, la structure(le squelette) de l'objet. quand je saisi item puis le point il m'afficher les méthode de l'objet et les propriétés ! je continu tout de même à me pencher sur le probléme mais franchement je vois pas, mais c'est forcément possible ! j'ai supprimer le if pour voir si cela marcher, comme ceci :
For Each item As RectangleSimple In Message.Controls MsgBox(item.EmplacementImG) End If Next
et toujours rien :(
merci en tous cas de te pencher sur mon probléme !
bin c'est une application Windows Forms en fait' et non Web,
j'ai tester ton code il m'affiche 'item.selected' en erreur en me disant :
" 'selected' n'est pas un membre de 'WindowsApplication.RectangleSimple'."
sinon j'ai changer :
for each item as InsertionImage in richtextbox.controls
if item.selected = true then
'là tu pourras accéder à ta propriété
item.emplacementImg
end if
next
par :
For Each item As RectangleSimple In Message.Controls
If item.selected = True Then
'là tu pourras accéder à ta propriété
item.EmplacementImG()
End If
Next
car il me trouver une erreur à InsertionImage car c'est la méthode pour
insérer des images donc j'ai changer par RectangleSimple, la structure(le
squelette) de l'objet. quand je saisi item puis le point il m'afficher les
méthode de l'objet et les propriétés !
je continu tout de même à me pencher sur le probléme mais franchement je
vois pas, mais c'est forcément possible !
j'ai supprimer le if pour voir si cela marcher, comme ceci :
For Each item As RectangleSimple In Message.Controls
MsgBox(item.EmplacementImG)
End If
Next
merci en tous cas de te pencher sur mon probléme ! bin c'est une application Windows Forms en fait' et non Web, j'ai tester ton code il m'affiche 'item.selected' en erreur en me disant : " 'selected' n'est pas un membre de 'WindowsApplication.RectangleSimple'." sinon j'ai changer :
for each item as InsertionImage in richtextbox.controls if item.selected = true then 'là tu pourras accéder à ta propriété item.emplacementImg end if next
par :
For Each item As RectangleSimple In Message.Controls If item.selected = True Then 'là tu pourras accéder à ta propriété item.EmplacementImG() End If Next
car il me trouver une erreur à InsertionImage car c'est la méthode pour insérer des images donc j'ai changer par RectangleSimple, la structure(le squelette) de l'objet. quand je saisi item puis le point il m'afficher les méthode de l'objet et les propriétés ! je continu tout de même à me pencher sur le probléme mais franchement je vois pas, mais c'est forcément possible ! j'ai supprimer le if pour voir si cela marcher, comme ceci :
For Each item As RectangleSimple In Message.Controls MsgBox(item.EmplacementImG) End If Next
et toujours rien :(
mlp code
Quand tu dis toujours rien, c'est qu'il n'a pas entrer dans la boucle où il t'affiche des message box vide ?
Dans les 2 cas tu devrais vérifié ta méthode qui ajoute ton image à ton richtextbox. J'ai regarder le code et il me semble qu'il devrait il y avoir quelque chose du genre :
rtb.add(ton objet img). Il ne faut pas que tu ajoute seulement l'image seulement, mais l'objet au complet si tu veux pouvoir récupérer sa propriété.
Est-ce que tu vois tes images apparaîtrent à l'écran ?
Quand tu dis toujours rien, c'est qu'il n'a pas entrer dans la boucle
où il t'affiche des message box vide ?
Dans les 2 cas tu devrais vérifié ta méthode qui ajoute ton image à
ton richtextbox. J'ai regarder le code et il me semble qu'il devrait il
y avoir quelque chose du genre :
rtb.add(ton objet img). Il ne faut pas que tu ajoute seulement l'image
seulement, mais l'objet au complet si tu veux pouvoir récupérer sa
propriété.
Est-ce que tu vois tes images apparaîtrent à l'écran ?
Quand tu dis toujours rien, c'est qu'il n'a pas entrer dans la boucle où il t'affiche des message box vide ?
Dans les 2 cas tu devrais vérifié ta méthode qui ajoute ton image à ton richtextbox. J'ai regarder le code et il me semble qu'il devrait il y avoir quelque chose du genre :
rtb.add(ton objet img). Il ne faut pas que tu ajoute seulement l'image seulement, mais l'objet au complet si tu veux pouvoir récupérer sa propriété.
Est-ce que tu vois tes images apparaîtrent à l'écran ?
mlp code
Public Sub add_pictures_to_rtb(ByVal pic As Image, ByVal rtb As RichTextBox, ByVal index As Integer) ^
| ta méthode devrait prendre ton objet rectangle simple comme paramètre que lui tu ajoute a ton contrôle rtb.
Dans ton événement click, ton objet a devrait être déclaré en tant que RectangleSimple et non InsertionImage(du moins je crois), puisque c'est cet objet que tu veux.
Sinon, les images ont une propriété ImageURL qui elle contient déjà l'emplacement de l'image. Peut-être pourrais-tu utiliser cette propriété ?
Regarde ces options et dit moi ce que tu en pense.
Public Sub add_pictures_to_rtb(ByVal pic As Image, ByVal rtb As
RichTextBox,
ByVal index As Integer) ^
|
ta méthode devrait prendre ton objet rectangle simple comme paramètre
que lui tu ajoute a ton contrôle rtb.
Dans ton événement click, ton objet a devrait être déclaré en tant
que RectangleSimple et non InsertionImage(du moins je crois), puisque
c'est cet objet que tu veux.
Sinon, les images ont une propriété ImageURL qui elle contient déjà
l'emplacement de l'image. Peut-être pourrais-tu utiliser cette
propriété ?
Regarde ces options et dit moi ce que tu en pense.
Public Sub add_pictures_to_rtb(ByVal pic As Image, ByVal rtb As RichTextBox, ByVal index As Integer) ^
| ta méthode devrait prendre ton objet rectangle simple comme paramètre que lui tu ajoute a ton contrôle rtb.
Dans ton événement click, ton objet a devrait être déclaré en tant que RectangleSimple et non InsertionImage(du moins je crois), puisque c'est cet objet que tu veux.
Sinon, les images ont une propriété ImageURL qui elle contient déjà l'emplacement de l'image. Peut-être pourrais-tu utiliser cette propriété ?
Regarde ces options et dit moi ce que tu en pense.
Scottmat
non apparament il n'entre pas dans la boucle car rien ne se produit ! regarde je l'ajoute comme tu le dit :
'je déclare le type en créant un nouvelle objet en RectangleSimple et non InsertionImage, tu avais raison ^^ Dim a As New RectangleSimple 'Ensuite on applique la propriété Emplacement a.EmplacementImG = OpenFilesMailing.FileName 'ensuite la méthode ajouter une image a.add_pictures_to_rtb(New Bitmap(OpenFilesMailing.FileName), Message, Message.SelectionStart)
Et l'image apparait bien sur l'écran dans le richtextbox C'est l'objet au complet que j'ai ajouter la ? non ? sinon je ne peu toujours pas récupéré la propriété, j'ai bien vérifier elle est bien enregistrer dans la propriété à cette ligne : a.EmplacementImG = OpenFilesMailing.FileName (J'ai simplement rajouter msgbox(a.EmplacementImG) pour vérifier et j'ai bien le chemin du fichier d'origine de l'image)
non apparament il n'entre pas dans la boucle car rien ne se
produit !
regarde je l'ajoute comme tu le dit :
'je déclare le type en créant un nouvelle objet en
RectangleSimple et non InsertionImage, tu avais raison ^^
Dim a As New RectangleSimple
'Ensuite on applique la propriété Emplacement
a.EmplacementImG = OpenFilesMailing.FileName
'ensuite la méthode ajouter une image
a.add_pictures_to_rtb(New Bitmap(OpenFilesMailing.FileName),
Message, Message.SelectionStart)
Et l'image apparait bien sur l'écran dans le richtextbox
C'est l'objet au complet que j'ai ajouter la ? non ?
sinon je ne peu toujours pas récupéré la propriété, j'ai bien vérifier elle
est bien enregistrer dans la propriété à cette ligne :
a.EmplacementImG = OpenFilesMailing.FileName
(J'ai simplement rajouter msgbox(a.EmplacementImG) pour vérifier et j'ai
bien le chemin du fichier d'origine de l'image)
non apparament il n'entre pas dans la boucle car rien ne se produit ! regarde je l'ajoute comme tu le dit :
'je déclare le type en créant un nouvelle objet en RectangleSimple et non InsertionImage, tu avais raison ^^ Dim a As New RectangleSimple 'Ensuite on applique la propriété Emplacement a.EmplacementImG = OpenFilesMailing.FileName 'ensuite la méthode ajouter une image a.add_pictures_to_rtb(New Bitmap(OpenFilesMailing.FileName), Message, Message.SelectionStart)
Et l'image apparait bien sur l'écran dans le richtextbox C'est l'objet au complet que j'ai ajouter la ? non ? sinon je ne peu toujours pas récupéré la propriété, j'ai bien vérifier elle est bien enregistrer dans la propriété à cette ligne : a.EmplacementImG = OpenFilesMailing.FileName (J'ai simplement rajouter msgbox(a.EmplacementImG) pour vérifier et j'ai bien le chemin du fichier d'origine de l'image)