XL 2016 Ajouter une photo dans mes enregistrements

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

  • Gestion de l'Eclairage Public.xlsm
    146.3 KB · Affichages: 23

Dranreb

XLDnaute Barbatruc
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 "é" ?
 

job75

XLDnaute Barbatruc
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

  • Gestion de l'Eclairage Public(1).xlsm
    156.8 KB · Affichages: 13

Dranreb

XLDnaute Barbatruc
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:

pat12

XLDnaute Occasionnel
Oui désolé c'est exact
Sur le nouveau fichier joint c'est plus compréhensible à chaque nouveau enregistrement
je souhaite enregistrer une photo dans la bdd-armoire , dans la colonne photo
merci
 

Pièces jointes

  • Gestion de l'Eclairage Public.xlsm
    153.2 KB · Affichages: 8

Discussions similaires

Réponses
10
Affichages
484