cherche une image dans fichier externe

pakalom

XLDnaute Junior
bonsoir,

J'essaie de faire en sorte que lorsque on passe sur la cellule, la photo de l'animal apparait.

J'ai fait des recherches et j'ai trouvé ce code mais je suis bloqué ; il ne va pas chercher la photo.

Si qqun peu se pencher sur mon probleme , ça serait super gentil

Meerci d'avance
 

Pièces jointes

  • cherche_image.xls
    22 KB · Affichages: 87

Dranreb

XLDnaute Barbatruc
Re : cherche une image dans fichier externe

Bonjour
Essayez peut être avec un controle image de la boite à outils contrôles que vous ne supprimerez ni ne recréerez,
nommé Image en faisant:
VB:
Image.Picture = LoadPicture(répertoirePhoto & Target & ".jpg")
À+
 

Theze

XLDnaute Occasionnel
Re : cherche une image dans fichier externe

Bonjour,

Le contrôle Image (contrôle ActiveX) doit être déposé sur la feuille avant le test et nommé "Image1" :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim OLE_Objet As OLEObject
    Dim Img As Image
    Dim RepPhoto As String

    If Not Intersect(Target, Range("A2:A5")) Is Nothing And Target.Count = 1 Then

        RepPhoto = "D:\" 'adapter le chemin

        'affecte à la variable l'objet OLE qu'est le contrôle ActiveX Image
        'il faut utiliser OLEObjects car c'est un objet OLE
        'j'ai laissé le nom par défaut "Image1"
        Set OLE_Objet = Worksheets("affichephoto").OLEObjects("Image1")

        'le rend visible si il a été caché
        OLE_Objet.Visible = True

        'passe l'objet de l'objet OLE à la variable Img afin
        'd'utiliser les propriétés propre à l'objet Image
        Set Img = OLE_Objet.Object

        'charge la photo et la positionne
        With Img
            .Picture = LoadPicture(RepPhoto & Target & ".jpg")
            .Left = Target.Offset(, 1).Left + 5
            .Top = Target.Offset(, 1).Top
        End With

    Else

        'si hors de la plage, cache le contrôle Image
        Set OLE_Objet = Worksheets("affichephoto").OLEObjects("Image1")
        OLE_Objet.Visible = False

    End If

End Sub

Hervé.
 

Dranreb

XLDnaute Barbatruc
Re : cherche une image dans fichier externe

Bonjour
Affichage, Barres d'outils, Boite à outils contrôles, implanter un objet image de la barre.
Il s'appelle Image1 et a une propriété Picture. Extrait de l'aide:
Picture, propriété


Spécifie l'image bitmap à afficher sur un objet.

Syntaxe

object.Picture = LoadPicture( pathname )

La syntaxe de la propriété Picture comprend les éléments suivants :

Élément Description
object Objet valide.
pathname Chemin d'accès complet vers un fichier d'image.


Remarques

Lors de la conception d'une feuille, vous pouvez utiliser la fenêtre de propriétés du contrôle pour affecter une image bitmap à la propriété Picture. Lors de l'exécution d'une feuille, vous devez utiliser la fonction LoadPicture pour affecter une image bitmap à la propriété Picture.

Pour retirer une image affectée à un contrôle, cliquez sur la valeur de la propriété Picture dans la page de propriétés, puis appuyez sur SUPPR. La touche RET.ARR ne supprime pas l'image.

Note Pour les contrôles ayant des légendes, utilisez la propriété PicturePosition pour spécifier ou afficher l'image sur l'objet. Utilisez la propriété PictureSizeMode pour déterminer la façon dont l'image remplit l'objet.

Les images transparentes sont parfois floues. Si leur aspect vous déplaît, affichez l'image sur un contrôle qui accepte les images opaques, comme Image et MultiPage.
 

pakalom

XLDnaute Junior
Re : cherche une image dans fichier externe

bonsoir,

je dois être vraiement une buse car je n'y arrive pas malgré vos aides. je vous joins ce que j'ai fait.

si vous pouvez jeter un coup d'oeil.
merci
 

Pièces jointes

  • cherche_image_modifie.xls
    22 KB · Affichages: 73

Dranreb

XLDnaute Barbatruc
Re : cherche une image dans fichier externe

Vous n'avez pas à déclarer quoi que ce soit. Regardez en haut à gauche, entre "(General)" et "Worksheet": l'objet "Image1" est connu et directement utilisable. Mettez simplement With Image1 au lieu de Img et enlevez tout le fatra autour.
Rectification: With Me.Image1 par simple correction d'orthodoxie personnelle.
 
Dernière édition:

pakalom

XLDnaute Junior
Re : cherche une image dans fichier externe

bonsoir dranred,

j'ai bien effectué votre modif , le cadre image apparait et disparait bien mais il ne va pas chercher ma photo et je ne pense pas me tromper dans le chemin d'accés.

Avez vous une idée.

merci
 

Dranreb

XLDnaute Barbatruc
Re : cherche une image dans fichier externe

je ne pense pas me tromper dans le chemin d'accés
mettez ceci devant pour vous en assurer:
VB:
 MsgBox Dir(RepPhoto & Target & ".jpg")
il devrait alors vous afficher le nom du fichier si le chemin est correct.
Chez moi un fichier sur Mes documents est en fait sur C:\Documents and Settings\luck\Mes documents
Si vous avez un classeur sur Mes documents essayez d'y tester MsgBox ThisWorkbook.FullName
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : cherche une image dans fichier externe

Quand comprendrez vous que la méthode OLEObjects n'est pas de votre niveau ?
Elle est faite pour accéder aux objets OLÉ de feuilles définies dans d'autres classeurs et qui ne sont par conséquent pas connus du projet Visual Basic. Votre Image1 est connue elle !
Vous avez fait exactement le contraire de ce que je vous avais dit: vous n'avez précisément gardé que tout ce qui ne sert à rien !
Plus rien dans le With Me.Image1 !
 

Dranreb

XLDnaute Barbatruc
Re : cherche une image dans fichier externe

Essayez simplement comme ça :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Image1.Visible = False
If Not Intersect(Target, Range("A2:A5")) Is Nothing And Target.Count = 1 Then
   ChDrive "C": ChDir "C:\Documents and Settings\pgillet\Mes documents"
   On Error Resume Next
   Image1.Picture = LoadPicture(Target & ".jpg")
   If Err Then MsgBox Err.Description: Exit Sub
   On Error GoTo 0
   Image1.Left = Target.Offset(, 1).Left + 5
   Image1.Top = Target.Offset(, 1).Top
   Image1.Visible = True
   End If
End Sub
À+
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 984
Membres
103 998
dernier inscrit
Gotteland