Mon code ne s'effectue pas tout le temps
Résolu
ced3c
Messages postés
237
Date d'inscription
Statut
Membre
Dernière intervention
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
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)
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
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:
- Mon code ne s'effectue pas tout le temps
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
19 réponses
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.... !
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.... !
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
je passais au formulaire par la fenêtre visual basic ^^
Bouton rajouté dans la feuille "Data"
https://www.cjoint.com/?0JflidGLn8n
Mes excuses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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:
Encore merci Le Pingou ;)
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 ;)
Bonjour,
Merci.
Je dois dire que j'ai réétudié votre code et moyennent quelques corrections cela marcherai aussi.
Merci.
Je dois dire que j'ai réétudié votre code et moyennent quelques corrections cela marcherai aussi.
mon code marche bien mais je ne maitrise pas comme vous les verifications et les simplifications de code^^
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 ?
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 ?
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
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
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
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
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
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
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
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
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
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
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
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]
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]
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
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
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 :)
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 :)