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
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...
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...
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.
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...
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
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?
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