Photo dans un formulaire
Résolu
djodjo5700
Messages postés
59
Date d'inscription
Statut
Membre
Dernière intervention
-
djodjo5700 Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
djodjo5700 Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis en train d'élaboré un formulaire ressemblant à un formulaire de contact, dans lequel se trouve un cadre image "Image 1" et je voudrais y insérer une photo d'identité en fonction d'un nom se trouvant dans la "ComboBox 1" tout en sachant que plusieurs personne ayant le même patronyme peuvent se trouver dans ma BD. Mon fichier étant et sera toujours sur une clef USB, vaut-il mieux stocker les photos d'identités dans le fichier Excel ou alors dans un document sur ma clef?
Merci par avance
je suis en train d'élaboré un formulaire ressemblant à un formulaire de contact, dans lequel se trouve un cadre image "Image 1" et je voudrais y insérer une photo d'identité en fonction d'un nom se trouvant dans la "ComboBox 1" tout en sachant que plusieurs personne ayant le même patronyme peuvent se trouver dans ma BD. Mon fichier étant et sera toujours sur une clef USB, vaut-il mieux stocker les photos d'identités dans le fichier Excel ou alors dans un document sur ma clef?
Merci par avance
A voir également:
- Photo dans un formulaire
- Whatsapp formulaire opposition - Guide
- Google photo - Télécharger - Albums photo
- Formulaire de réclamation facebook - Guide
- Google maps photo maison - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
22 réponses
Bonjour,
Mon fichier étant et sera toujours sur une clef USB, vaut-il mieux stocker les photos d'identités dans le fichier Excel ou alors dans un document sur ma clef?
Il vaut mieux placer toutes tes photos dans un répertoire de ta clé plutôt que dans le fichier Excel.
Pour les récupérer :
tout en sachant que plusieurs personne ayant le même patronyme peuvent se trouver dans ma BD
Il te faudra donc trouver un subterfuge, VBA n'étant pas voyant.
Mon fichier étant et sera toujours sur une clef USB, vaut-il mieux stocker les photos d'identités dans le fichier Excel ou alors dans un document sur ma clef?
Il vaut mieux placer toutes tes photos dans un répertoire de ta clé plutôt que dans le fichier Excel.
Pour les récupérer :
Chemin = ThisWorkbook.Path & "\Mes Photos\" Img = "DUPONTVincent.jpg" Image1.Picture = LoadPicture(Chemin & Img)
tout en sachant que plusieurs personne ayant le même patronyme peuvent se trouver dans ma BD
Il te faudra donc trouver un subterfuge, VBA n'étant pas voyant.
Je te remercie pour ta réponse mais je viens seulement de débuter . alors si j'ai bien compris, je clique sur Image1 et je rentre ta formule, tout en changeant bien sur le chemin d'accès de mes photos
Bonjour,
Sur ce site tu trouveras toutes les explications avec un exemple a télécharger
https://silkyroad.developpez.com/VBA/XlOrganigramme/
Sur ce site tu trouveras toutes les explications avec un exemple a télécharger
https://silkyroad.developpez.com/VBA/XlOrganigramme/
Ou La LA trop compliqué pour moi tout çà je viens de commencer l semaine dernière.
Merci tout de même
Jean-Marie
Merci tout de même
Jean-Marie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alors, dans le module de l'Userform :
A adapter à ton jus bien sur.....
Private Sub ComboBox1_Change() If ComboBox1 = "" Then Exit Sub Chemin = ThisWorkbook.Path & "\Mes Photos\" Img = ComboBox1.Value & ".jpg" Image1.Picture = LoadPicture(Chemin & Img) End Sub
A adapter à ton jus bien sur.....
Je viens de le faire et il m'ecrit:
Erreur de compilation:
Nom ambigu détecté: ComboBox1_change
Erreur de compilation:
Nom ambigu détecté: ComboBox1_change
Private Sub ComboBox1_Change() Dim Ligne As Long Dim I As Integer If Me.ComboBox1.ListIndex = -1 Then Exit Sub Ligne = Me.ComboBox1.ListIndex + 2 For I = 1 To 25 Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1) Next I End Sub
Voici le liens
https://www.cjoint.com/?DLlpPvOGQcV
https://www.cjoint.com/?DLlpPvOGQcV
Donc,
- Pour remplir ta combobox avec les données sans doublons :
Dans la procédure UserForm_Initialize, remplace la ligne :
Par
Pour obtenir :
Regarde comment s'affichent tes noms maintenant...
- Dans le répertoire qui contient ton fichier excel, créées un nouveau dossier, l'appeler "photos" et y enregistrer tes images en "formatant" leurs noms comme ceci : ID NOM Prénom. Exactement comme ce qui s'affiche dans la Combobox.
- Changer le code de la procédure ComboBox_Change() comme ceci :
- Pour remplir ta combobox avec les données sans doublons :
Dans la procédure UserForm_Initialize, remplace la ligne :
.AddItem Ws.Range("A" & J)
Par
.AddItem Ws.Range("AQ" & J)
Pour obtenir :
'Correspond au programme du FORULAIRE Private Sub UserForm_Initialize() Dim J As Long Dim I As Integer Set Ws = Sheets("SP") 'Attention ce nom doit correspondre au nom de votre ONGLET With Me.ComboBox1 For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row .AddItem Ws.Range("AQ" & J) Next J End With For I = 1 To 25 Me.Controls("TextBox" & I).Visible = True 'affiche les données dans les textbox Next I End Sub
Regarde comment s'affichent tes noms maintenant...
- Dans le répertoire qui contient ton fichier excel, créées un nouveau dossier, l'appeler "photos" et y enregistrer tes images en "formatant" leurs noms comme ceci : ID NOM Prénom. Exactement comme ce qui s'affiche dans la Combobox.
- Changer le code de la procédure ComboBox_Change() comme ceci :
Private Sub ComboBox1_Change() Dim Ligne As Long Dim I As Integer Dim Chemin As String, Img As String If Me.ComboBox1.ListIndex = -1 Then Exit Sub Ligne = Me.ComboBox1.ListIndex + 2 For I = 1 To 25 Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1) Next I Chemin = ThisWorkbook.Path & "\photos\" Img = ComboBox1.Value & ".jpg" Image1.Picture = LoadPicture(Chemin & Img) End Sub
Je vous remercie tous, mais là je vais exploser. je mélange tout. je vais recommencer mon fichier et reviens vers vous.
Je viens de refaire un fichier complétement basiq tout fonctionne correctement jusqu'au moment ou j'essaye de rentrer la photo en fonction de ma ComboBox1
Visiblement il ne trouve pas le chemin de mon fichier photo qui est:
G:\Base de donnée\Photos
Je reçois le message d'erreur '75':
Erreur d'accés Chemin/fichier
Option Explicit
Dim Ws As Worksheet
'Correspond au programme du bouton QUITTER
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub Image1_Click()
End Sub
Private Sub RefEdit4_BeforeDragOver(Cancel As Boolean, ByVal Data As MSForms.DataObject, ByVal x As stdole.OLE_XPOS_CONTAINER, ByVal y As stdole.OLE_YPOS_CONTAINER, ByVal DragState As MSForms.fmDragState, Effect As MSForms.fmDropEffect, ByVal Shift As Integer)
End Sub
'Correspond au programme du FORULAIRE
Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
Set Ws = Sheets("Feuil1") 'Attention ce nom doit correspondre au nom de votre ONGLET
With Me.ComboBox1
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & J)
Next J
End With
For I = 1 To 8
Me.Controls("TextBox" & I).Visible = True 'affiche les données dans les textbox
Next I
End Sub
'Correspond au programme du bouton MODIFIER
Private Sub CommandButton2_Click()
If MsgBox("Etes-vous certain de vouloir modifier ce produit ?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)
End If
Next I
End If
'Code permettant de modifier le format de la plage de cellule en format nombre
With Ws.Range("D2:d10")
.NumberFormat = "0"
.Value = .Value
End With
End Sub
'Correspond au programme de la LISTE DEROULANTE
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String, Img As String
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
Chemin = ThisWorkbook.Path & "\G:\Base de donnée\Photos\"
Img = ComboBox1.Value & ".jpg"
Image1.Picture = LoadPicture(Chemin & Img)
End Sub

Ne doit pas donner des informations à l'outils "Image1"?
Visiblement il ne trouve pas le chemin de mon fichier photo qui est:
G:\Base de donnée\Photos
Je reçois le message d'erreur '75':
Erreur d'accés Chemin/fichier
Option Explicit
Dim Ws As Worksheet
'Correspond au programme du bouton QUITTER
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub Image1_Click()
End Sub
Private Sub RefEdit4_BeforeDragOver(Cancel As Boolean, ByVal Data As MSForms.DataObject, ByVal x As stdole.OLE_XPOS_CONTAINER, ByVal y As stdole.OLE_YPOS_CONTAINER, ByVal DragState As MSForms.fmDragState, Effect As MSForms.fmDropEffect, ByVal Shift As Integer)
End Sub
'Correspond au programme du FORULAIRE
Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
Set Ws = Sheets("Feuil1") 'Attention ce nom doit correspondre au nom de votre ONGLET
With Me.ComboBox1
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & J)
Next J
End With
For I = 1 To 8
Me.Controls("TextBox" & I).Visible = True 'affiche les données dans les textbox
Next I
End Sub
'Correspond au programme du bouton MODIFIER
Private Sub CommandButton2_Click()
If MsgBox("Etes-vous certain de vouloir modifier ce produit ?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)
End If
Next I
End If
'Code permettant de modifier le format de la plage de cellule en format nombre
With Ws.Range("D2:d10")
.NumberFormat = "0"
.Value = .Value
End With
End Sub
'Correspond au programme de la LISTE DEROULANTE
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String, Img As String
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
Chemin = ThisWorkbook.Path & "\G:\Base de donnée\Photos\"
Img = ComboBox1.Value & ".jpg"
Image1.Picture = LoadPicture(Chemin & Img)
End Sub

Ne doit pas donner des informations à l'outils "Image1"?
Chemin = ThisWorkbook.Path & "\G:\Base de donnée\Photos\"
En supposant que ton fichier Excel est dans G:\Base de donnée\, Chemin prendra la valeur
G:\Base de donnée\G:\Base de donnée\Photos\ (oui, je n'ai pas fait de fautes).
Mets plutôt
Chemin = ThisWorkbook.Path & "\Photos\", car G: ne correspondra pas toujours à ta clé USB.
A+
'Correspond au programme de la LISTE DEROULANTE
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String, Img As String
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
Chemin = ThisWorkbook.Path & "\Photos\"
Img = ComboBox1.Value & ".jpg"
Image1.Picture = LoadPicture(Chemin & Img)
End Sub
Toujours une erreur dans
Image1.Picture = LoadPicture(Chemin & Img)
"CHEMIN D'ACCES INTROUVABLE"
@+
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String, Img As String
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
Chemin = ThisWorkbook.Path & "\Photos\"
Img = ComboBox1.Value & ".jpg"
Image1.Picture = LoadPicture(Chemin & Img)
End Sub
Toujours une erreur dans
Image1.Picture = LoadPicture(Chemin & Img)
"CHEMIN D'ACCES INTROUVABLE"
@+
C'est dur dur à distance.
Tes images sont bien des jpg?
Si oui, que te dis ce code :
Tes images sont bien des jpg?
Si oui, que te dis ce code :
'Correspond au programme de la LISTE DEROULANTE Private Sub ComboBox1_Change() Dim Ligne As Long Dim I As Integer Dim Chemin As String, Img As String If Me.ComboBox1.ListIndex = -1 Then Exit Sub Ligne = Me.ComboBox1.ListIndex + 2 For I = 1 To 8 Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1) Next I Chemin = ThisWorkbook.Path & "\Photos\" Img = ComboBox1.Value & ".jpg" MsgBox Img Image1.Picture = LoadPicture(Chemin & Img) End Sub
Oui mes images sont bien de JPG, exemple:

voilaà ce qui ce passe lorsque je rentre maintenant ton code:

Puis "ERREUR D'EXECUTION '76'
Chemin introuvable.
'Correspond au programme de la LISTE DEROULANTE
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String, Img As String
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
Chemin = ThisWorkbook.Path & "\PhotosIdent\"
Img = ComboBox1.Value & ".jpg"
MsgBox Chemin & Img
Image1.Picture = LoadPicture(Chemin & Img)
End Sub
Avec toujours une flèche jaune en face de:
Image1.Picture = LoadPicture(Chemin & Img)

voilaà ce qui ce passe lorsque je rentre maintenant ton code:

Puis "ERREUR D'EXECUTION '76'
Chemin introuvable.
'Correspond au programme de la LISTE DEROULANTE
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim Chemin As String, Img As String
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For I = 1 To 8
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
Chemin = ThisWorkbook.Path & "\PhotosIdent\"
Img = ComboBox1.Value & ".jpg"
MsgBox Chemin & Img
Image1.Picture = LoadPicture(Chemin & Img)
End Sub
Avec toujours une flèche jaune en face de:
Image1.Picture = LoadPicture(Chemin & Img)
Sans problème, si tu peux m'expliquer la manip
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
Peur être encore une question
Si dans ma base de donnée la photo correspondant à un nom est absente, je reçois le message d'erreur suivant:
Erreur d'2écution '53'
Fichier introuvable
Avec bien sur le choix FERMER , DÉBOGAGE
Quoi que je fasse, je ne peux pas continuer ma saisie. Y a t-il une solution?
Pareil auparavant j'avais des CheckBox qui me remplissait automatiquement une TextBox en fonction que la CheckBox soit coché ou pas
Exemple:
Une checkBox coché remplissait un TextBox par VL(la personne concernée est donc un possession du permis de conduire VL).
J'ai donc ajouté à tous cela une case image pour avoir l'image du permis
En utilisant les codes que vous m'avez donnés précédemment. Tout fonctionne parfaitement, sauf que maintenant l'indication VL ne s'affiche plus dans la TextBox concernée.
Est-il possible de faire quelque chose.?
Merci, par avance
Si dans ma base de donnée la photo correspondant à un nom est absente, je reçois le message d'erreur suivant:
Erreur d'2écution '53'
Fichier introuvable
Avec bien sur le choix FERMER , DÉBOGAGE
Quoi que je fasse, je ne peux pas continuer ma saisie. Y a t-il une solution?
Pareil auparavant j'avais des CheckBox qui me remplissait automatiquement une TextBox en fonction que la CheckBox soit coché ou pas
Exemple:
Une checkBox coché remplissait un TextBox par VL(la personne concernée est donc un possession du permis de conduire VL).
J'ai donc ajouté à tous cela une case image pour avoir l'image du permis
En utilisant les codes que vous m'avez donnés précédemment. Tout fonctionne parfaitement, sauf que maintenant l'indication VL ne s'affiche plus dans la TextBox concernée.
Est-il possible de faire quelque chose.?
Merci, par avance
Bonjour
Voila
A+
Maurice
Voila
' Chemin du repertoire Image Chemin = ThisWorkbook.Path & "\Base de donnée\PhotosIdent\" Img = ComboBox1.Value & ".jpg" ' Test le repertoire ou se trouve la photo If Dir(Chemin & Img) = "" Then Image1.Picture = LoadPicture(Chemin & "Image1.jpg") Else Me.Image1.PictureSizeMode = fmPictureSizeModeStretch Image1.Picture = LoadPicture(Chemin & Img) End If
A+
Maurice
Re
le debut de la combobox je prefere ca
A+
Maurice
le debut de la combobox je prefere ca
Private Sub UserForm_Initialize() Dim L As Long With Sheets(Feuil1.Name) ' mettre le codeName comme ca tu peux Changer le nom de l'onglet ComboBox1.Clear For L = 2 To .Range("A" & Rows.Count).End(xlUp).Row ComboBox1.AddItem .Range("A" & L) Next End With End Sub
A+
Maurice