Comment créer un userform liste déroulante ?

HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai créé un fichier excel avec plusieurs feuilles. Je voudrais créer un userform pour encoder des données dans les feuilles. Il semblerait que ce soit plus commode pour encoder.
Pour cela, je devrais créer un formulaire mais je bloque déjà sur la manière de procéder pour obtenir une liste déroulante avec le choix de la feuille.
Exemple j'ai des feuilles nommées M1, M2, M4, P1 ... quand je clique sur M1 le curseur devrait se positionne sur la feuille M1 et activera le formulaire pour encoder les données dans cette feuille. Il s'agit du même formulaire pour toute les feuilles.
Merci d'avance pour votre aide.
A voir également:

6 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour

1) Pour afficher l'userform à l'activation d'une feuille il faut dans l'éditeur VBA pour chaque feuille mettre l'instruction :
Private Sub Worksheet_Activate()
Userform1.Show
End Sub


2) Les données sélectionnées vont elle alors après dans la même cellule de chaque feuille, si oui il suffit au clic du bouton Valider que tu auras missur l'userform de lier une instruction du style :
Private Sub CommandButton1_Click()
ActiveSheet.Range("D4") = ListBox1.Value
End Sub


Mais je doute que ce soit aussi simple

Aussi il vaudrait mieux joindre un exemple de ton fichier sur cjoint.com, faire créer le lien, le copier et revenir l'indiquer ici en expliquant exactement ce que tu veux avec un exemple précis

Cdlmnt
Via
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Via 55,
Je vous remercie pour vos explications...
Afin que vous puissiez mieux vous rendre compte de ma demande je vous joins le fichier.
Sur la feuille DEPART, je vous ai expliqué les différentes étapes à suivre pour l'encodage des données.
Au plaisir de vous lire.

https://www.cjoint.com/c/EGqmHmoAtGO

Bon après-midi.
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bon J'ai préparé un userform formulaire
Les listes des n°S par classes sont nommées du nom de la classe ce qui permet avec un plage nommé numero, validée par =INDIRECT(DEPART!$B$4) d'avoir la bonne liste en fonction de la classe choisie, en jonglant entre les listes de choix du formulaire et la feuille DEPART on peut faire afficher les bons nom et prenom dans le formulaire
L'userform s'ouvre pour l'instant avec la macro go (Onglet Développeurs Macros)
Me dire si c'est bien déjà ce que tu veux
http://www.cjoint.com/c/EGqqI3SbPJp
Ensuite si j'ai bien compris ce formulaire doit permettre de remplir les différentes feuilles, cela se pourra avec un code associé au bouton valider mais je ne comprends pas la structure de tes feuilles classes :
Pourquoi 2 colonnes pour chaque activité ? une colonne présent et une colonne nom activité
Pour les repas comment d'après le formulaire savoir si c'est à l'unité? carte 4,5, 10 ou 20 repas? Et la encore pourquoi 2 colonnes à chaque fois ?!

CDlmnt
Via
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
C'est dingue que cela prenne déjà forme... Merci

Pourquoi 2 colonnes pour chaque activité ?
Par exemple la piscine en primaire est organisée une fois tous les 15 jours. Donc sur la facture mensuelle, je pourrais avoir 2 présences piscine pour un élève soit 5 euros (2X2,50) mais une présence pour un autre s'il a été malade par exemple. Par contre tu as raison pour les autres activités 1 seule présence suffit.
La colonne "présent" me renseigne le prix unitaire de l'activité sur la facture. Voir feuille impression et impr-indiv.
Pour les repas, j'ai décidé de simplifier la facture en n'indiquant que des prix unitaires
maternelles (2.50€), si pris en charge par le CPAS 45% prix unitaire 1.38 etc.Donc un élève maternelle qui a pris 16 repas sur le mois 16x 2,50=40 euros
Les colonnes AT à BG pourraient être cachées. Elles ne servent plus à rien, avant on vendait des cartes repas aux parents mais je crois que ce sera plus simple en procédant avec une facture mensuelle.

Le formulaire devrait me permettre d'encoder les données pour imprimer la facture
mais aussi de vérifier les données qui se trouvent dans les cellules. Quand j'ouvre le formulaire d'un élève soit j'encode, soit je vois ce qui a été encodé. Eventuellement je peux modifier. Si par exemple un parent vient payer la facture en liquide au secrétariat, je peux ouvrir le formulaire et consulter ce qu'il me doit. Mais encore de pouvoir vérifier si un paiement bancaire correspond bien au montant de la facture. Et dans ce cas renseignée Facture PAYEE. Ca je n'y avais pas pensé avant.
Et dans lors quand la facture est payée de remettre les données à zéro.

Merci encore.
Tes idées sont les bienvenues.

Bonne soirée.
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour

J'ai amélioré l'userform qui désormais affiche les données de l'élève choisi et permet de les modifier
http://www.cjoint.com/c/EGrmavSyJKp
J'ai donc supprimé des colonnes dans la feuille ACC1 et rajouté une colonne pour la date de paiement et un bouton pour lancer le formulaire
Si ça convient il faut mettre les mêmes colonnes dans les autres feuilles classes bien sûr et créer sur chaque feuille la bouton avec comme ligne de code FORMULAIRE.Show

Je n'ai pas fait de remise à zéro des données quand la facture est payée pour qu'il reste une trace, on sait que c'est payé puisqu'il y a une date en colonne AY

Cdlmnt
Via
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Via,

C'est magnifique. Bien vu pour la date de paiement au moins on a une trace.Et en plus du vert payé et du rouge impayé.
Ce qui serait chouette c'est de pouvoir imprimer une liste de tous les élèves qui n'ont pas encore payé pour effectuer un rappel. Logiquement on devrait lancer cette macro le 6 du mois, date à laquelle tous les paiements devraient être clôturer. C'est bon de rêver !

J'ai fait quelques essais d'encodage à l'aide du formulaire ... et je rencontre des petits soucis.
Par exemple en ACC1 je choisis l'élève 1 et je valide les données le concernant.Je passe à l'élève 8 de la même classe et petit souci les données de l'élève 1 restent afficher.
Par exemple si j'ai choisis Prairie 2 pour l'élève 1 cette activité reste cochée pour l'élève 8. Alors qu'il se peut qu'il n'est pas participé car malade. Ce serait bien de pouvoir cocher ou décocher.
Par contre pour les repas : ca roule, on peut modifier. Et valider le nouveau choix.

Merci pour ton aide et belle soirée.
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour Via55

Mon problème venait d'Excel, j'ai réinstallé mon image disque C le système et les applications, cela me prend entre une à deux heures avec les mises à jour Windows et Norton 360 pour être opérationnelle. Tout est Ok maintenant.
Cela fait plusieurs fois que j'ai ce problème, je n'ai plus de boîte de dialogue ouvrir et n'ai plus accès à mes DD et Excel ne fonctionne plus correctement. Le problème arrive après des téléchargements de fichier sur Cjoint.com si je ne sauvegarde pas le fichier avant de l'ouvrir. Si je l'ouvre directement après Excel n'a plus accès au fichier sur le serveur.
Pour HugoCal
Pouvez vous me rafraichir la mémoire il n'y a que les classe P2 et P4 pour l'épargne
et pour les biscuits qu'elles sont les classes concernées
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Philippe,

Content de te lire et que tu aies pu résoudre ton problème.

L'épargne que les P2ABC et P4ABC.
Les biscuits toutes les classes.

Belle soirée.
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour HugoCal et Via55

Voici le dernier jus du fichier
J'espère avoir repris toutes les modifications faites par vous deux
Vous testez et vous me dites si cela vous convient

http://www.cjoint.com/c/EGtuwKzRGSx
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour HugoCal et Via55

Le fichier modifié, celui d'hier avait une liaison avec un autre fichier,elle est restée lors de la duplication des feuilles d'impressions

le fichier http://www.cjoint.com/c/EGuhXqFNwdx
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Philippe et Via55,

Je viens d'encoder toute une série de données et tout fonctionne à merveille.

Je vous remercie très chaleureusement pour votre travail et vous tiendrez au courant de l'utilisation du programme à la rentrée de septembre.

Bonne journée.
Profitez bien de vos vacances si vous en avez !

Encore Merci.
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Hugo

Tant mieux et bonne utilisation (c'est pour des TAP ?)
Ok tiens nous au courant
Bonnes vacances également

Bien cdlmnt
Via
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824 > via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Via55 pour ton aide sur les macros
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention  
 
De rien

Au plaisir
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   > via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Via, Bonjour Philippe,

Les affaires reprennent ...

Je vous expose une situation qui se produira tout au long de l'année scolaire ... de nouveaux élèves entrent en classe d'ACC1 et ACC2 dès qu'ils ont 2 ans et demi. Par conséquent la liste des élèves n'est pas figée et se modifie pendant l'année. On peut aussi avoir des départs ou des arrivées dans d'autres classes suite à un déménagement par exemple.
Ainsi je pensais incorporer dans les listes des classes les nouveaux élèves en continuant la numérotation, le nouvel élève aurait le numéro 539 et ainsi de suite 540, 541 ...
Mais à partir du formulaire les nouveaux numéros n'apparaissent pas ; ainsi en ACC1, on ne peut choisir que parmi les 27 élèves dans le menu liste déroulant. Comment faire pour sélectionner le nouvel élève 539 incorporé dans la feuille ELEVES et dans la liste de la FEUILLE ACC1 ?

De plus j'ai toujours le souci pour l'élève 2 en ACC1 qui n'active pas dans la feuille ACC1 les différents choix sélectionnés dans le formulaire.

Merci d'avance pour vos réponses.
0

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

Posez votre question
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Bonjour Via55 et HugoCAL

J'ai essayé de mettre une adresse à un enfant pour voir et une fois validé
je ne vois rien sur la ligne de l'élève
Via55 peux-tu expliquer la procédure
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Philou

Je ne m'en étais pas aperçu!
Je ne comprends pas, la macro reprend les anciennes données car le n° eleve revient à 1 lorsqu'on valide !!
J'ai du récupérer dans ma macro les valeurs de tous les textbox au moment de la validation
http://www.cjoint.com/c/EGxoogNX3SF

Cdlmnt
Via
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
le fichier joins ne correspond pas à notre sujet
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention  
 
Me serai-je mélangé les pinceaux !
Voilà le bon :
http://www.cjoint.com/c/EGxsDzhFODF
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Philippe,
Bonsoir Via,

Désolé de vous répondre aussi tardivement ...
Je ferai des tests demain, en profondeur mais déjà les quelques essais que je viens de faire sont supers.

Merci et belle soirée ou plutôt bonne nuit et à demain donc.
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824 > HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour HugoCAL et Via55
Je suis de nouveau embêté avec excel plus de boîte de dialogue ouvrir

J'ai fais un teste hier soir classe P1A j'ai mis élève 53 (ce qui est une erreur mai la liste ne s'affichant pas, je l'ai choisi pour ce teste) l'élève à bien été modifié mais sa classe d'origine remplacé par P1A, Il faut obligatoirement la liste correspondant à la classe
0
HugoCAL Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Via,
Bonjour Philippe,

Après quelques tests, voici les résultats de mon analyse ...

1. La macro "Trier et placer les élèves dans les onglets selon leur classe" me semble plus être utile mais ne peut-on pas activer à l'aide ce bouton la macro "ctrl+w" ?
2. La macro "Editer les impayés" ne reprend pas les nouveaux inscrits". Par exemple si j'ajoute un élève dans une classe, ce nouvel élève n'est pas repris dans la liste sur la feuille des "Impayés".
A ce sujet ne serait-il pas possible en plus de la macro "Editer les Impayés",de créer une autre macro disponible sur la feuille "Départ" qui reprendrait uniquement les Impayés de toutes les classes en un seule fois, à activer sitôt les encodages terminés.
3. La macro "Impression de tous les élèves de la classe" de la feuille "Impression" modifie le numéro correspondant au nouvel élève rentré dans une classe.
Je pense que c'est lié au compteur qui renseigne la ligne qui lui correspond sans tenir compte de son numéro d'ordre; ici, le 540. La macro reprend l'élève en fonction du numéro du compteur et lui attribue un autre numéro, la ligne où il se trouve +2.

Encore merci pour votre précieuse collaboration et bon après-midi.
0