Modif programme pour affichage d'image

Fariri

XLDnaute Junior
Bonjour,

Débutante en VBA, j'ai créer un petit programme pour afficher une photo en fonction du nom qui est indiqué dans une ComboBox. Les photos sont dans un dossier, il se trouve que lorsque l'image dans le dossier n'existe pas (pour la raison suivante : l'image n'ai pas dans le dossier) je me retrouve avec une erreur 53 et je souhaiterai donc modifier le programme pour palier au message d'erreur.

Le programme est comme ceci : quand un nom est affiché dans la liste déroulante de la comboBox9, la photo est alors affiché dans l'objet Image1
J'ai essayé de faire un code du style : (en rajoutant un objet Image7)
Quand aucun nom n'est affiché dans les comboBox9, alors les objets : Image1 et Image7 ne sont pas visible
Quand un nom est affiché dans la ComboBox9 et que l'image existe dans le dossier Image alors l'objet Image1 apparaît, ma photo est affiché et l'objet Image7 disparait
Quand un nom est affiché dans la ComboBox9 et que l'image n'existe pas dans le dossier Image alors l'objet Image1 disparait et l'objet Image7 apparait.

Il se trouve que j'ai tourné le code dans tous les sens que j'ai pu et je suis arrivée à un méga flop :(

Pourriez-vous m'apporter votre aide svp :)

Voici mon code à l'état brut :

'*****************************************************************************************************************************************************
'1) PROCEDURE DE LA USERFORM NOMMEE "USERAGENT"
'*****************************************************************************************************************************************************

Private Sub UserForm_Initialize()


'Pour l'affichage des photos, récupère les noms dans la colonne B de la feuille "Agents"
With Feuil3
fin = .Range("b" & Rows.Count).End(xlUp).Row
For iii = 2 To fin
ComboBox9.AddItem .Range("b" & iii)
Next iii
End With




'J'affiche dans la ComboBox le nombre d'agent(comptabilisé dans la feuille "Agents" dans la colonne NOM)
TextEffectif = ComboBox9.ListCount

End Sub

'*****************************************************************************************************************************************************
'2) FONCTION QUI PERMET DE RECUPERER LES PHOTOS ET LE CHEMIN D'ACCES (ici les photos sont dans le fichiers PHOTO)
'*****************************************************************************************************************************************************

Private Sub Afficher()

Rep = ThisWorkbook.Path & "\PHOTO\" 'Met dans la variable "Rep" le chemin relatif (c-à-d que le chemin changera en fonction de où est placé le dossier) du dossier

img = Rep & ComboBox9.Text & ".jpg" 'Les photos sont au format jpg
Image1.Picture = LoadPicture(img) 'Charge l'image en utilisant la propriété LoadPicture

End Sub

'*****************************************************************************************************************************************************
'3) PROCEDURE DE LA COMBOBOX (liste déroulante)-
' REMPLIR LES CHAMPS DES COMBOBOX (civilité, nom,.....)
'*****************************************************************************************************************************************************

Private Sub ComboBox9_Change()



'Je Remplis les champs de la ComboBox 1 à la ComboBox 8
If ComboBox9.ListIndex = -1 Then Exit Sub
lig = Application.Match(ComboBox9, Feuil3.[B:B], 0) 'renvoye N°ligne
For col = 1 To 8 'on rempli les combox
Controls("ComboBox" & col) = Feuil3.Cells(lig, col)

Next


'Affiche les photos dans la ComboBox9 si la combobox est différente de vide
If ComboBox9.Text <> "" Then
Call Afficher 'appelle la fonction "Afficher"
End If


End Sub




Merci :)
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour,

Débutante en VBA, j'ai créer un petit programme pour afficher une photo en fonction du nom qui est indiqué dans une ComboBox. Les photos sont dans un dossier, il se trouve que lorsque l'image dans le dossier n'existe pas (pour une raison quelconque) je me retrouve avec une erreur 53.

Le programme est comme ceci : quand un nom est affiché dans la liste déroulante de la comboBox9, la photo est alors affiché dans l'objet Image1
J'ai essayé de faire un code du style : (en rajoutant un objet Image7)
Quand aucun nom n'est affiché dans les comboBox9, alors les objets : Image1 et Image7 ne sont pas visible
Quand un nom est affiché dans la ComboBox9 et que l'image existe dans le dossier Image alors l'objet Image1 apparaît, ma photo est affiché et l'objet Image7 disparait
Quand un nom est affiché dans la ComboBox9 et que l'image n'existe pas dans le dossier Image alors l'objet Image1 disparait et l'objet Image7 apparait.

Il se trouve que j'ai tourné le code dans tous les sens que j'ai pu et je suis arrivée à un méga flop :(

Pourriez-vous m'apporter votre aide svp :)

Voici mon code à l'état brut :

'*****************************************************************************************************************************************************
'1) PROCEDURE DE LA USERFORM NOMMEE "USERAGENT"
'*****************************************************************************************************************************************************

Private Sub UserForm_Initialize()


'Pour l'affichage des photos, récupère les noms dans la colonne B de la feuille "Agents"
With Feuil3
fin = .Range("b" & Rows.Count).End(xlUp).Row
For iii = 2 To fin
ComboBox9.AddItem .Range("b" & iii)
Next iii
End With




'J'affiche dans la ComboBox le nombre d'agent(comptabilisé dans la feuille "Agents" dans la colonne NOM)
TextEffectif = ComboBox9.ListCount

End Sub

'*****************************************************************************************************************************************************
'2) FONCTION QUI PERMET DE RECUPERER LES PHOTOS ET LE CHEMIN D'ACCES (ici les photos sont dans le fichiers PHOTO)
'*****************************************************************************************************************************************************

Private Sub Afficher()

Rep = ThisWorkbook.Path & "\PHOTO\" 'Met dans la variable "Rep" le chemin relatif (c-à-d que le chemin changera en fonction de où est placé le dossier) du dossier

img = Rep & ComboBox9.Text & ".jpg" 'Les photos sont au format jpg
Image1.Picture = LoadPicture(img) 'Charge l'image en utilisant la propriété LoadPicture

End Sub

'*****************************************************************************************************************************************************
'3) PROCEDURE DE LA COMBOBOX (liste déroulante)-
' REMPLIR LES CHAMPS DES COMBOBOX (civilité, nom,.....)
'*****************************************************************************************************************************************************

Private Sub ComboBox9_Change()



'Je Remplis les champs de la ComboBox 1 à la ComboBox 8
If ComboBox9.ListIndex = -1 Then Exit Sub
lig = Application.Match(ComboBox9, Feuil3.[B:B], 0) 'renvoye N°ligne
For col = 1 To 8 'on rempli les combox
Controls("ComboBox" & col) = Feuil3.Cells(lig, col)

Next


'Affiche les photos dans la ComboBox9 si la combobox est différente de vide
If ComboBox9.Text <> "" Then
Call Afficher 'appelle la fonction "Afficher"
End If


End Sub




Merci :)
Bonjour,
Quelque chose comme ceci peut-être
VB:
Private Sub Afficher()
Rep = ThisWorkbook.Path & "\PHOTO\" 'Met dans la variable "Rep" le chemin relatif (c-à-d que le chemin changera en fonction de où est placé le dossier) du dossier
On Error GoTo fin
img = Rep & ComboBox9.Text & ".jpg" 'Les photos sont au format jpg
Image1.Picture = LoadPicture(img) 'Charge l'image en utilisant la propriété LoadPicture
Exit Sub
fin:
MsgBox "La photo " & ComboBox9.Text & " est absente.", vbInformation, "Information"
End Sub
 

Fariri

XLDnaute Junior
Bonjour,
Quelque chose comme ceci peut-être
VB:
Private Sub Afficher()
Rep = ThisWorkbook.Path & "\PHOTO\" 'Met dans la variable "Rep" le chemin relatif (c-à-d que le chemin changera en fonction de où est placé le dossier) du dossier
On Error GoTo fin
img = Rep & ComboBox9.Text & ".jpg" 'Les photos sont au format jpg
Image1.Picture = LoadPicture(img) 'Charge l'image en utilisant la propriété LoadPicture
Exit Sub
fin:
MsgBox "La photo " & ComboBox9.Text & " est absente.", vbInformation, "Information"
End Sub


Bonsoir Jacky67,

Super ça fonctionne :) :)
Merci pour ce code que je n'aurai jamais pu trouver

Je vous souhaite une excellente soirée
 

Discussions similaires

Réponses
12
Affichages
681
Réponses
1
Affichages
404
Compte Supprimé 979
C

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh