Mon code ne s'effectue pas tout le temps

Résolu/Fermé
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 - 5 oct. 2013 à 10:42
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 - 7 oct. 2013 à 22:54
Bonjour tout le monde,

Je suis en train de me faire un petit fichier excel sous forme de livre de recette.

J'ai 3 combobox (Entrée, Plat, Dessert) contenant les recettes
Quand je sélectionne une recette elle s'affiche dans divers textbox
Tout marche pour l affichage

J'ai néanmoins un soucis avec les combobox.

exemple:
- je sélectionne un dessert
- la recette s'affiche
-je sélectionne ensuite un plat
- tout s'efface mais rien ne s'affiche
-si je sélectionne une deuxième fois le plat, tout s'affiche correctement

voici le code pour la combobox Entree ( les combobox Dessert et Plat sont identiques)


Private Sub CB_Entree_Change()
Worksheets("Entree").Activate
CB_Plat.Value = "Plat"
CB_Dessert.Value = "Dessert"
With Sheets("Entree")
Dim a As Integer
Dim Fichier As String
For a = 1 To 9999
If CB_Entree.Value = Range("A" & a).Value Then
TB_ingredient.Value = Range("E" & a).Value
TB_Recette.Value = Range("F" & a).Value
TB_Nombre.Value = Range("B" & a).Value
TB_Preparation.Value = Range("C" & a).Value
TB_Cuisson.Value = Range("D" & a).Value

Fichier = "C:\Users\Cedric\Desktop\image\" & Range("A" & a).Value & ".jpg"
'Vérifie si le fichier existe.
If Dir(Fichier) <> "" Then
'si le fichier existe, il est chargé pour visualisation.
Image1.Picture = LoadPicture(Fichier)
Else
'Sinon, affiche aucune image.
Image1.Picture = LoadPicture("")
End If

GoTo fin:
End If
Next
fin:
End With
End Sub

Le fichier excel si besoin(images dans un dossier a part qui n'est pas joint)
https://www.cjoint.com/?0JfkMiZfkP5

Merci d'avance pour votre aide



A voir également:

19 réponses

Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
5 oct. 2013 à 10:51
Bonjour,
Eh ou vous déclenchez votre formulaire.... Pas de bouton de commande.... !

1
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
5 oct. 2013 à 11:04
Bonjour,
En principe votre formulaire est prévu pour afficher une recette. Donc vous devriez avoir une liste déroulante pour choisir entre Entrée, Plat, Dessert et une deuxième qui affiche la liste de choix selon la première....Oui Non.... !

0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
5 oct. 2013 à 11:09
Oups petit oubli
je passais au formulaire par la fenêtre visual basic ^^

Bouton rajouté dans la feuille "Data"

https://www.cjoint.com/?0JflidGLn8n

Mes excuses
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
5 oct. 2013 à 11:10
Cela serais peut être mieux en effet.

Je travaille la dessus

Merci Le Pingou
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
5 oct. 2013 à 11:23
Bonjour,
Merci.
Réponse dans l'après-midi.
Salutations.
Le Pingou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
5 oct. 2013 à 11:48
En effet c'est nettement mieux et bien plus visible au niveau du code.
Qui plus est, le code est générique pour le choix du menu.
Si cela peut aider voici le code:


Private Sub Choix_Menu_Click()
CB_Recette.RowSource = ""
If Choix_Menu.Value = "Entrée" Then
CB_Recette.RowSource = "Entrée!A2:A" & Sheets("Entrée").Cells(1, 1).End(xlDown).Row
ElseIf Choix_Menu.Value = "Plat" Then
CB_Recette.RowSource = "Plat!A2:A" & Sheets("Plat").Cells(1, 1).End(xlDown).Row
ElseIf Choix_Menu.Value = "Dessert" Then
CB_Recette.RowSource = "Dessert!A2:A" & Sheets("Dessert").Cells(1, 1).End(xlDown).Row
End If
End Sub


Private Sub CB_Recette_Change()
Worksheets(Choix_Menu.Value).Activate
Dim a As Integer
Dim Fichier As String
For a = 1 To 9999
If CB_Recette.Value = Range("A" & a).Value Then
TB_ingredient.Value = Range("E" & a).Value
TB_Recette.Value = Range("F" & a).Value
TB_Nombre.Value = Range("B" & a).Value
TB_Preparation.Value = Range("C" & a).Value
TB_Cuisson.Value = Range("D" & a).Value

Fichier = "C:\Users\Cedric\Desktop\image\" & Range("A" & a).Value & ".jpg"
'Vérifie si le fichier existe.
If Dir(Fichier) <> "" Then
'si le fichier existe, il est chargé pour visualisation.
Image1.Picture = LoadPicture(Fichier)
Else
'Sinon, affiche aucune image.
Image1.Picture = LoadPicture("")
End If
GoTo fin:
End If
Next
fin:
End Sub



Encore merci Le Pingou ;)
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
5 oct. 2013 à 14:08
Bonjour,
Ma proposition : https://www.cjoint.com/?3JfoilmvHz1
J'espère dans le bon sens !

0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
5 oct. 2013 à 15:03
merci Le pingou, c'est parfait
Ton code à l'air plus "professionel" ^^
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
5 oct. 2013 à 15:12
Bonjour,

Merci.
Je dois dire que j'ai réétudié votre code et moyennent quelques corrections cela marcherai aussi.
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
5 oct. 2013 à 16:49
mon code marche bien mais je ne maitrise pas comme vous les verifications et les simplifications de code^^
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
5 oct. 2013 à 17:05
j aurai juste une autre question si cela ne vous derange pas.

J aimerai créé un autre userform pour ajouter des recettes.
Ce serais un formulaire simple d'ajout.
Je devrais y arriver mais je ne sais pas comment inclure les images.

J'aimerai une solution pour importer une photo de recette du web et l enregistrer dans un dossier. Je ne sais pas si il existerai une solution et je ne sais pas par ou commencer.

Auriez vous une piste svp ?
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
5 oct. 2013 à 23:32
Bonjour,
J'aimerai créer un autre userform pour ajouter des recettes.

Le principe est le même que le formulaire existant. Vous pouvez reprendre une partie du formulaire [Userform1], le copier et changer de nom puis supprimer les champs non utilisés.
Vous ajoutez 2 boutons de commande (Valider et Annuler). Le [Valider] sera relier à la procédure [Bouton_Valider_Click] dans laquelle vous insérer les instructions pour écrire les données des champs dans les cellules de la feuille adéquates.

Je devrais y arriver mais je ne sais pas comment inclure les images.
Pour l'image il faut passer par une macro qui permet de choisir l'image dans votre dossier (celui qui contient toutes les images de recette) à insérer. Je me renseigne car je ne connais pas bien.

J'aimerai une solution pour importer une photo de recette du web et l'enregistrer dans un dossier. Je ne sais pas s'il existera une solution et je ne sais pas par où commencer.
Vous devez le faire manuellement quand c'est possible via enregistre l'image sous ou avec l'outil [Capture] (fourni dans Windows 7, XP ... !) et ensuite l'enregistre dans votre dossier.
Salutations.
Le Pingou
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
Modifié par Le Pingou le 5/10/2013 à 18:52
Bonjour,
J'ai corrigé votre code dans le but que vous puissiez voir que tout marche aussi.
Je vous laisse découvrir les modifications.... !
Votre fichier : https://www.cjoint.com/?3JfsUVDzjM4
Concernant votre dernière demande je vous donne une réponse dans la soirée !
Question, les mêmes champs que le formulaire existant Oui/Non ?

Salutations.
Le Pingou
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
5 oct. 2013 à 19:19
Je viens d'adapter votre code (j'ai juste changer les noms de combobox).
Tout est parfait

Je link le nouveau fichier avec le squelette du Userform d'enregistrement

https://www.cjoint.com/?3JftrfqXMlE

Merci pour votre aide et votre temps
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
6 oct. 2013 à 00:05
Bonjour,
Merci, bon dimanche.
Réponse lundi !
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
Modifié par ced3c le 6/10/2013 à 11:46
Bonjour :)
Juste une autre question svp si vous suivez toujours ce fil.

Peut on afficher une image dans un userform à partir de son lien internet ?

Si c'est possible je pourrais juste me sauvegarder les liens et non les images et les appeler automatiquement dans un code vba.

Edit

J'ai trouver ce bout de code qui d'apres la personne marcherait

ActiveSheet.Pictures.Insert("http://s.tf1.fr/mmdia/i/70/7/2763707tvyhu.png")

Je ne sais pas trop comment l'utiliser et si il marche vraiment
il est issu de ce fil de discussion
https://forums.commentcamarche.net/forum/affich-16179990-macro-excel-pour-afficher-une-image-du-web

Reedit ^^

Je viens de me rendre compte que cela afficher l'image dans la feuille active du classeur
0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
Modifié par ced3c le 6/10/2013 à 13:16
Je fais mon petit chemin.
A l 'heure actuelle j'arrive à récupérer l'image sur le net et l'inclure dans une feuille

Il me manque plus qu'à copier l'image de la feuille dans le controle image du userform


J'avais aussi trouver un code qui apparement était niquel mais cela me demande de le basculer en 64 bits, je ne comprends pas du tout comment y arriver

'http://www.ex-designz.net/apidetail.asp?api_id=498
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function

Sub essai()
DownloadFile "http://www.google.fr/images/srpr/logo3w.png", "c:\mesdoc\google.png"
End Sub
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
6 oct. 2013 à 16:49
Bonjour,
Juste au passage, que ferai vous lorsque que lien sera supprimer/modifier par le propriétaire....!
Plus rien pour vous....!
Salutations
Le Pingou
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
6 oct. 2013 à 17:59
Bonjour,
Très intéressent la lecture de vos messages.
Personnellement pour les images je procéderais de cette manière :
1.- ajouter un contrôle [Image] dans le formulaire (pour ajouter)
2.-ajouter un bouton de commande pour insérer l'image
3.-le code déclencher par le bouton vous permet de choisir l'image sur votre PC ou le Web
4.-L'immage est insérer sur le formulaire y compris son nom (avec possibilité de modification
5.- via le bouton [Valider] enregistrer les données dans la feuille adéquate (entree, plat, dessert) y compris le nom de l'image. Cette dernière sera enregistrée dans votre dossier [Image_recette]

0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
6 oct. 2013 à 21:12
Décidément je vous accapare tout votre temps :)
C'est rassurant d'avoir un superviseur pour réaliser son projet qui ne donne pas directement les réponses mais donne des possibilitées à suivre. Je peux progresser un peu comme cela :)


J'ai bien analyser ce que vous m'avez dit
Voici ce que j'ai fais pour l'enregistrement des recettes à l'heure actuelle :

- Création du controle image (Image1)
- Création d'un bouton de commande (CmdB_Import)
-CmdB_Import ouvre l'explorateur de document au dossier ou j'enregistre mes images
- Je fais glisser l'image du site internet dans l'explorateur (cela l'enregistre donc dans le dossier sur mon pc)
- Je renomme l'image avant de valider l'explorateur (même nom que titre recette)
- Je valide l'explorateur en sélectionnant l'image qui s'importe dans mon controle image (Image1)

Il ne me manque plus qu'à faire mon code pour enregistrer ma recette (Je ne l'ai pas encore fais mais c'est la prochaine étape)

Dans l'idéal j'aimerais automatiser le renommage de mon image en lui donnant le même nom que mon titre recette mais je ne sais pas trop comment faire

Voici le fichier actuel
https://www.cjoint.com/?3Jgu62oAvCx

Merci beaucoup
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
7 oct. 2013 à 21:53
Bonjour,
Votre fichier avec adaptation des procédures : https://www.cjoint.com/?3JhlPgOjc70

0
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 5
7 oct. 2013 à 22:06
Je viens de regarder votre fichier.
Je vous remercie beaucoup, c'est exactement ce que je souhaitais :)

Je viens de regarder votre code. C'est bien au de la de mes petites capacités. Je n'y serais pas arriver tout seul.
Cela m'aidera un peu à progresser d'analyser votre code.

Encore un grand merci Le Pingou :)
0
Le Pingou Messages postés 12049 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 avril 2024 1 430
7 oct. 2013 à 22:54
Bonjour,
Merci, content pour vous.

0