Bonjour,
J'aimerais que vous m'aidiez à pouvoir récupérer la valeur d'une liste déroulante d'un
formulaire et la stocker sur un champ de ce même formulaire. J'ai beau cherché mais je n'arrive pas à trouver le code .
Voici le fichier. Le code se trouve au niveau du bouton ajouter un plan de la feuille 1. j'ai mis un commentaire sur la ligne 58 col5 pour vous expliquer le code que j'ai mis en dessous.
J'ai examiné le fichier, je n'ai pas trouvé le commentaire explicatif, donc je ne sais pas de quel liste il faut extraire l'information, ni dans quel formulaire le mettre.
Me.SitePlan_Liste = SitePlan_Liste.List Me.EntrepriseExterieureConcernee_Liste = EntrepriseExterieureConcernee_Liste.List 'Je veux récuperer le siter, l'entreprise, et la date d'aujourd'hui pour les stocker dans le champ référence Me.ReferencePlanPrevention_Champ = SitePlan_Liste.List(SitePlanPr_Liste.ListIndex) & "-" & EntrepriseExterieureConcernee_Liste.List(EntrepriseExterieureConcernee_Liste.ListIndex) & "-" & Format(Now, "/mm/yyyy")
c'est le code que j'ai ajouté sur mon bouton ajouter un plan mais ça marche pas
Tout ceci est dans le code de Private Sub UserForm_Initialize(), donc au moment d'ouvrir la forme "Ajouter un Plan de Prévention dans la base de données".
N'est ce pas un peu tôt pour aller chercher les données dans la liste, ne faudrait-il pas attendre que l'utilisateur sélectionne une entrée dans la liste, et/ou clique sur un autre bouton? Qu'en penses-tu?
Oui c'est l'utilisateur qui sélectionne d'abord une entrée dans la liste et après sélection on récupère la valeur pour la stocker dans le champ référence
Pour le moment, il me semble que ton code récupère la valeur avant sélection par l'utilisateur.
Tu peux décrire comment l'utilisateur va utiliser ton programme, quelles actions il va faire?
En résumé l'utilisateur sélectionne d'abord le site du plan,l'entreprise dans les listes déroulantes et récupère la date d'aujourd'hui( le mois et l'année).Et c'est à partir de ses 3 informations qu'on crée automatiquement notre champ référencePlan.
Voici ce qui se passe pour le moment, comme tu as écrit ton programme :
1) l'utilisateur clique le bouton ajouter un plan
2) Excel charge le formulaire "Ajouter un Plan de Prévention dans la base de données" et exécute ton code UserForm_Initialize()
3) ton code UserForm_Initialize() essaie de récupérer ce que l'utilisateur a sélectionné
On est d'accord?
Cela ne peut pas fonctionner, l'utilisateur n'a pas eu le temps de travailler.
Après l'étape 2, tu dois laisser l'utilisateur travailler, puis, ensuite, faire exécuter un autre code VBA. Comment veux-tu que l'utilisateur signale à Excel qu'il a fini de travailler et que c'est au tour d'Excel de travailler?
Tu dois d'abord décider comment l'utilisateur va signaler à Excel qu'il a fini de travailler et que c'est au tour d'Excel de travailler. Peut-être en cliquant sur un bouton?
En faite tout se fait sur le formulaire .Et je veux pas cliquer sur un bouton. J'aimerais que ça remplit automatiquement mon champ avec les informations saisies
Donc tu voudrais faire tourner ton code VBA au moment où l'utilisateur clique dans une liste? Si oui, tu peux utiliser, par exemple, Private Sub EntrepriseExterieureConcernee_Liste_Click(), pour réagir à une sélection dans la liste EntrepriseExterieureConcernee.
J'ai essayé votre code mais ça ne marche pas. Du coup j'ai du écrire un autre code ci dessous :
Dim i As Variant
For i = 0 To EntrepriseExterieureConcernee_Liste.ListCount - 1 If EntrepriseExterieureConcernee_Liste.Selected(i) = True Then ReferencePlan_Champ = EntrepriseExterieureConcernee_Liste.List(i) End If Next i
A chaque exécution, il m'affiche une erreur sur le mot en gras: membre de méthode ou de données introuvables
private sub EntrepriseExterieureConcernee_Liste_Click()
ReferencePlan_Champ = _
EntrepriseExterieureConcernee_Liste _
(EntrepriseExterieureConcernee_Liste.ListIndex)
end sub