XL 2016 Ajouter une photo dans mes enregistrements

  • Initiateur de la discussion Initiateur de la discussion pat12
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat12

XLDnaute Occasionnel
Bonjour,
Je suis en train de réalisé une base de donnée qui utilise une Userform pour enregistrer les données dans une feuille et cela fonctionne mais,
je n'arrive pas réalisé une fonction pour ajouter une photo.
(j'ai réalisé un zone de texte pour l'emplacement photo dans l'UserForme)
Je joint ma basse pour plus de facilité dans la compréhension.
Merci🙂
 

Pièces jointes

Bonjour.
Il faut enregistrer dans la base le com complet du fichier image.
Alors vous pourrez faire IPhoto.Picture = LoadPicture(LaRéférenceFichierRetrouvéeDansLaBase)
Pourquoi y a-t-il des "Ž" dans votre code à la place des "é" ?
 
Bonjour pat12, Bernard,

Il y a de nombreux exemples sur le forum.

Voyez le fichier joint et cette macro dans le code de l'UserForm :
VB:
Private Sub UserForm_Initialize()
Dim fichier$, s As Shape
fichier = ThisWorkbook.Path & "\MonImage.gif"
'---création du fichier image gif---
Application.ScreenUpdating = False
Set s = Sheets("accueil").Shapes("Image 3")
s.CopyPicture xlScreen, xlBitmap
With s.Parent.ChartObjects.Add(0, 0, s.Width, s.Height).Chart
    While .Shapes.Count = 0 'en attente du collage
        DoEvents
        .Paste
    Wend
    .Export fichier, "GIF"
    .Parent.Delete 'supprime le graphique temporaire
End With
Application.ScreenUpdating = True
'---chargement de l'image---
Iphoto.PictureSizeMode = fmPictureSizeModeClip 'fmPictureSizeModeStretch
Iphoto.Picture = LoadPicture(fichier)
Kill fichier 'suppression du fichier image
End Sub
A+
 

Pièces jointes

Sinon, si vous préférez que vos images (pas trop nombreuses) soient enregistrées dans votre classeur, enregistrer les sous formes d'images ActiveX et non de formulaire. IPhoto.Picture = OLEObjects("SonNomDansLaFeuille").Object.Picture ça marche aussi, j'ai testé.
Remarque: faire un Me.Repaint derrière sinon ça ne semble pas marcher :
VB:
Private Sub Iphoto_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   Iphoto.Picture = Feuil1.OLEObjects("Image1").Object.Picture
   Me.Repaint
   End Sub
Le contrôle Image fait partie de ceux pris en charge par mon objet ControlsAssociés, lui même conçu pour compléter le travail de mon objet ComboBoxLiées. Sa valeur est la référence du fichier, et, à l'utilisation, en cliquant sur l'image un GetOpenFileName est exécuté pour la changer.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2019 jj
Réponses
11
Affichages
674
Retour