message "pas de photo" si fichier introuvable

folls

XLDnaute Junior
Bonjour à tout le forum,
Je suis dans l'impasse et je n'arrive pas à trouver de solution à mon problème si il existe.
Pour commencer j'ai un USF qui à l'activation récupère, des données de tableau d'excel, dans trois textbox et selon ces trois valeurs initialisent 11 autres textbox.
Ensuite pour chacunes de ces 11 textbox j'ai 11 commandbutton qui activent un USF avec pour d'eux des 11 images (je ne suis pas arrivé à en activer une seule avec toutes les données, car soit elles se supperposaient lors de la fermeture de l'USF, soit je n'en avais qu'une pour tout les boutons... mais çà c'est un autre problème!)
Mon problème est que lorsque j'active ces boutons, le "développement" récupère des photos dans un autre fichier, et si une de ces photos correspondantes à chacun des textbox n'existe pas, j'ai un retour d'erreur 53.
Ce que j'aimerais c'est que dans l'image correspondante de mon USF s'affiche: "pas de photo".
Et là problème, vu que je ne suis encore qu'un novice en la matière, je pense avoir épuisé toutes mes ressources et là c'est moi qui bug!
(Dans le fichier de photos il y en a environ 2500...).
Code:
Private Sub UserForm_Activate()
Dim chemin As String
chemin = "C:\Documents and Settings\Administrateur\Bureau\Monnaies\Image monnaies\2euros\image_"
 Dim i As Integer
 j = 15
 
For i = 5 To 378
    If i > j Then
        i = j
        j = j + 11
    Else
        'pays et atelier
        If UserFormDétail.TextBox1.Value = Sheets("Tab Récap").Range("b" & j - 10).Value _
        And UserFormDétail.TextBox2.Value = Sheets("Tab Récap").Range("c" & j - 10).Value Then
                'année 1999
                If Val(UserFormDétail.TextBox3.Value) = Sheets("Tab Récap").Range("e4").Value _
                And UserFormDétail.Controls("CommandButton" & i - (j - 22)).TakeFocusOnClick = True Then
                UserForm1.Controls("Image" & i - (j - 11)).Picture = LoadPicture(chemin & i - 4 & ".jpg")
                End If
                
        End If
    End If
Next

End Sub

Merci pour votre aide!
Folls...
 

Larson

XLDnaute Junior
Re : message "pas de photo" si fichier introuvable

Bonjour,

peut être une piste ....

dans le formulaire devant afficher la photo, creer une zone de texte 'pas de photo' qui sera par defaut invisible.

dans le code, activer une gestion d'erreur par

On error Goto TraitementErreur:

Et lors du traitement, detecter si le n° d'erreur est le 53

if Err.number = 53 then
'afficher le formulaire
'rendre la photo du formulaire invisible
'rendre la zone de texte visible
end if

.......
 
Dernière édition:

folls

XLDnaute Junior
Re : message "pas de photo" si fichier introuvable

bonjour Larson, et merci pour ta réponse,
j'essaie le code que tu m'as donné tout de suite et je te tiendrais au courant, par contre j'espère que celà tiendra compte de ma boucle sur les commandbutton!
@+
Folls...
 

folls

XLDnaute Junior
Re : message "pas de photo" si fichier introuvable

Re,
Bon je viens d'essayer et... par trois fois çà m'a buggé toute l'application, et la seule fois ou j'ai pu avoir un autre message d'erreur il ne m'a inséré qu'une image (pb avec la boucle et qui ne met qu'une seule erreur" ?)
Du coup pour simplifier pour l'instant avant detrouver la bonne solution je mets par défault une image différente en cas d'erreur 53. Mais toujours pas!
@+
Folls...
 

folls

XLDnaute Junior
Re : message "pas de photo" si fichier introuvable

Bonjour, PierreJean
Il est vrai que celà serait plus simple d'avoir de quoi bosser pour m'aider,
je vais voir comment je peux faire ce petit dossier et je le "poste" au plus tôt (j'espère ce soir).
Merci.

Folls...
 

folls

XLDnaute Junior
Re : message "pas de photo" si fichier introuvable

Rebonsoir le forum,
Je joins donc mon fichier, je l'ai allégé un peu.
Toutes les photos sont dans un fichier à part que je n'ai pas transmis vu le poids, certaines fonctionnalité ne sont pas encore développées, la seule pour l'instant sur le multipage est 1999. Et bien d'autres ne le sont pas non plus sur les autres!!!
Je ne sais plus ou je me suis arrêté dans les modif....
Encore merci
Folls...
 

Pièces jointes

  • envoi monnaie2.zip
    48.2 KB · Affichages: 29

pierrejean

XLDnaute Barbatruc
Re : message "pas de photo" si fichier introuvable

Re

A tester:

une fonction pour savoir si le fichier existe (dans le module1)
s'il n'existe pas on met la photo pasphoto.jpg (ou autre chose !!)

Code:
Function exist(image As String) As Boolean
Set fs = CreateObject("Scripting.FileSystemObject")
exist = fs.Fileexists(image)
End Function

Code:
Private Sub UserForm_Activate()
Dim chemin As String
chemin = "C:\Documents and Settings\administrateur\Bureau\Monnaies\Image monnaies\2euros\image_"
 Dim i As Integer
 j = 15
               
For i = 5 To 378
    If i > j Then
        i = j
        j = j + 11
    Else
        'pays et atelier
        If UserFormDétail.TextBox1.Value = Sheets("Tab Récap").Range("b" & j - 10).Value _
        And UserFormDétail.TextBox2.Value = Sheets("Tab Récap").Range("c" & j - 10).Value Then
                'année 1999
                If Val(UserFormDétail.TextBox3.Value) = Sheets("Tab Récap").Range("e4").Value _
                And UserFormDétail.Controls("CommandButton" & i - (j - 22)).TakeFocusOnClick = True Then
                  [COLOR=red] If exist(chemin & i - 4 & ".jpg") Then
                     UserForm1.Controls("Image" & i - (j - 11)).Picture = LoadPicture(chemin & i - 4 & ".jpg")
                   Else
                     UserForm1.Controls("Image" & i - (j - 11)).Picture = LoadPicture(chemin & "pasphoto" & ".jpg")
                   End If
[/COLOR]                End If
                
                
        End If
    End If
Next
 

folls

XLDnaute Junior
Re : message "pas de photo" si fichier introuvable

Re,
Merci PierreJean celà fonctionne à merveille!!!!

Je n'aurais jamais trouvé tout seul (et j'aurais pu m'économiser quelques neurones si j'avais posé la question avant!)
Juste trois questions en une par apport au fait de mettre le code dans un module, à quel moment est il activé ? Comment? Et pourquoi dans un module?

Folls...
 

pierrejean

XLDnaute Barbatruc
Re : message "pas de photo" si fichier introuvable

Re
Mettre dans un module c'est autoriser toutes les macros a acceder a la fonction ou qu'elles soient
la fonction est activée lorsqu'elle est sollicitée genre

if exist(nomdufichier)

exist(nomdufichier) est soit Vrai si le fichier existe soit Faux s'il n'existe pas
 

Discussions similaires

Statistiques des forums

Discussions
311 713
Messages
2 081 806
Membres
101 819
dernier inscrit
lukumubarth