Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 11 And Target.Count 1 Then
'-- suppression
For Each s In ActiveSheet.Shapes
If s.Type = 13 Then
If s.TopLeftCell.Address = Target.Offset(0, 1).Address Then
s.Delete
End If
End If
Next s
'--
If Target <> "" Then
On Error GoTo Pas_Image
Sheets("Images").Shapes(Target).Copy
On Error GoTo 0
Target.Offset(0, 1).Select
ActiveSheet.Paste
Selection.ShapeRange.Left = ActiveCell.Left + 9
Selection.ShapeRange.Top = ActiveCell.Top + 32
Target.Select
End If
End If
Pas_Image:
If Error = "L'élément portant ce nom est introuvable." Then Exit Sub
End Sub
Bonjour voilà mon soucis après plusieurs essais infructueux malgré mes recherches sur les forums, je sollicite votre aide
donc: sur ma feuille j'utilise actuellement la colonne K pour écrire un nom et une image apparaît juste a côté cela fonctionne bien, cependant j'aimerais que les images s'affichent toujours sur cette feuille mais que je puisse faire la sélection des noms à partir de mon UserForm dans une ComboBox.
est-ce possible?
merci pour votre aide
'dans le cas ou le NomDeImage
'se trouve dans une Liste et est sélectionné
FichierName = MonUserForm.MonControlList.Value
'charge dans le Controle Image "MonImage" du Form "MonUserForm" l'image "Image.jpg"
MonUserForm.MonImage.Picture = LoadPicture(CheminDeImage & FichierName & ".jpg")
Bonjour mjpmjp merci de ton aide cependant j'ai oublié de dire que les images sont dans une feuille du classeur que j'utilise
merci
If Target.Column 11 And Target.Count 1 Then
'faut il remplacer cette ligne de code par FichierName = MonUserForm.MonControlList.Value
' que faut il mettre a la place de fichier name
'MonUserForm.MonImage.Picture = LoadPicture(CheminDeImage & FichierName & ".jpg")
'ou mettre cette ligne de code en sachant que les images sont dans une feuille du classeur
'merci pour ton aide
MonUserForm est le conteneur ta Feuille ou
Sheets("NomOnglet") est aussi un conteneur.
Sheets("NomOnglet") contient le control "MonImage"
qui contient "Picture" qui contient ton Image.jpg
LoadPicture(CheminDeImage & FichierName & ".jpg")
la notion de contenir n'est peut etre pas exacte,
c'est juste pour comprendre le fonctionnement.
Private Sub CreationList()
'pour mettre les nom dans listBox
'une boucle pour lire les nom dans colonne et les ecrire dans Listbox
For n = LigneDebut To LigneFin
MonUserForm.MaListBox.AddItem(ActiveSheet.Range("MaColonne" & Cstr(n)).value)
Next
End sub
Private Sub MaListBox_Change()
'on selectionne un nom dans la liste
NomSelection = MonUserForm.MaListBox.Value
'on charge une image.jpg qui se trouve dans un repertoire
'et on place l'image dans le control dans la feuille (onglet)
Sheets(ActiveSheet.Name).MonControlImage.Picture...
...= LoadPicture(CheminDeImageDansRepertoire & NomSelection & ".jpg")
End sub
ne pas mettre les "...."
et les images meme nom que dans la liste
@+JP
Bonjour mjpmjp veuillez excuser ma stupidité, mais je n'arrive pas à comprendre comment intégrer vos lignes de code à mon code
je sollicite votre aide à nouveau
merci
Je comprends ce que tu as pu penser, mais : même si cela avait été réalisable, ce serait peine perdue si, comme tout le donne à penser, toutes les variables sont "englouties" par un fil qui semble être distinct et mal géré, de création de l'objet OLE.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Zut !
Erreur de discussion (pas tenir compte de ce message).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient