Afficher les résultats selon la demande de l'utilisateur
Bonjour à tous,
Ne sachant pas par où commencer, je vous sollicite pour demander votre soutien.
Voici les informations sur ma feuille "Parents" ou nous allons travailler.
La feuille "Parents" se compose de plusieurs colonnes :
La colonne "A" contient tous les jeunes de mon élevage.
La colonne "B" contient les pères de tous les jeunes se trouvant dans la colonne "A", d’ailleurs, toutes les cellules de la colonne "B" se terminent par "M" pour "Mâles".
La colonne "C" contient les mères de tous les jeunes se trouvant dans la colonne "A", d’ailleurs, toutes les cellules de la colonne "C" se terminent par "F" pour "Femelles".
La colonne "H" contient la date de naissance des jeunes se trouvant en colonne "A", d’où la nécessité de récupérer l’année de naissance de tous les jeunes dans la colonne "H".
Ce que je souhaite faire, c’est de regrouper les jeunes selon les 2 informations fournit par l’utilisateur avec deux InputBox et afficher les lignes concernées dans la feuille "Affiche".
- On commence par récupérer l’année de naissance des jeunes via le 1er InputBox, l’année de naissance est mentionnée en colonne "H".
- Ensuite, on récupère soit les coordonnées du père ou les coordonnées de la mère via un le 2e inputbox, si les cordonnées indiquées par l’utilisateur se terminent par "M", alors, il s’agit du père et donc on vas chercher tous les jeunes de ce père indiqué par l’utilisateur dans le 2e inputbox en colonne "B".
Si par contre les coordonnées indiqués par l’utilisateur se termine par "F", alors, il s’agit de la mère, donc on vas chercher tous les jeunes de la mère indiqués par l’utilisateur dans le 2e inputbox, la recherche se fera alors en colonne "C".
- Il serait souhaitable de traiter les cas non prévue pour éviter le blocage du programme, par exemple :
- Cas ou les coordonnées du père ou de la mère n’existe pas dans la feuille "Parents", soit en colonne "B" lorsqu’il s’agit du père, ou soit en colonne "C" lorsqu’il s’agit de la mère.
- Cas ou l’utilisateur ne rentre pas les coordonnées dans le 2e inputbox, ni père, ni mère, alors on sort de la procédure sans rien faire.
J’ai réduit la taille de la feuille "Parents" pour les besoins de ma demande, d’où la nécessité que l’exécution du code en fonction des données réelles (Importantes) soit rapide, libre à vous de mener votre code comme bon vous semble.
Je reste bien entendu à votre disposition au besoin.
Je vous remercie d’avance de vos contributions.
Bonjour,
Au lieu de 2 inputbox, j'ai opté pour 3 combobox "liste des années de naissance", "liste des pères" et "liste des mères", pour les alimenter, il faut cliquer sur le bouton jaune.
Il ne reste plus qu'à faire votre sélection parmi ces 3 combobox et cliquer sur le bouton "violet " pour exporter le résultat dans la feuille "Affiche".
Cdlt
Je n"avais compris pourquoi vos vouliez une inputbox.
Voici une autre proposition avec inputbox, mais j'ai gardé la combobox pour extraire les années. le petit bouton jaune sert à constituer la liste des années disponibles dans le fichier.
Puis dans l'inputbox, saisissez le début du nom du père ou de la mère suivi de M ou F.
Cdlt
Bonjour Arturo83 et fanfan38,
Merci à tous les deux pour vos codes respectifs, j’ai mis le temps pour vous répondre car j’ai pris le temps pour faire mes tests et vérifier la totalité de toutes les possibilités qu’on peut rencontrer, voici donc mon retour :
Je réponds dans un premier temps à fanfan38 pour lui dire ceci :
Vous avez bien fait d’utiliser un UserForm, l’idée me séduit très bien, le seul problème est qu’il serait souhaitable que le ComboBox1 affiche seulement les années et non la date de naissance en format (jour, mois et année) de chaque jeunes.
Ensuite, dans le comboBox2, il ne doit y avoir que la liste des pères (mâles) de mon élevage qui se trouvent dans la colonne "B" de la feuille "B_D" et surtout sans doublons.
Idem pour le ComboBox3, ce dernier ne doit afficher que la liste des mères (femelles) de mon élevage qui se trouvent dans la colonne "C" de la feuille "B_D" surtout sans doublons.
En résumé, ce que je souhaite afficher, ce sont les jeunes qui sont nés à une année donnée (Choisit par l’utilisateur dans le comboBox1), en fonction soit du mâle choisi dans le comboBox2 ou de la femelle choisi dans le comboBox3.
Je réponds maintenant à Arturo83 pour lui dire ceci :
C’est votre première solution qui me convient, elle fonctionne bien et me donne le bon résultat souhaité, merci.
Pour votre 2e solution, celle qui utilise un inputBox, elle affiche tous les jeunes d’une année donnée, or je souhaite afficher les jeunes d’une année donnée en fonction soit du leur père ou de leur mère, ta première solution proposée le fait très bien.
Je reste à la disposition de fanfan38 pour d’autres informations supplémentaires pour la mise à jour de sa solution avec un UserForm.
Salutations à tous les deux.
Bonjour,
Pour votre 2e solution, celle qui utilise un inputBox, elle affiche tous les jeunes d’une année donnée, or je souhaite afficher les jeunes d’une année donnée en fonction soit du leur père ou de leur mère, ta première solution proposée le fait très bien.
Si si, ça marche très bien, exemple; je sélectionne 2025, puis dans l'inputbox, je saisis:"NIF" donc les mères commençant par "NI" et dont les jeunes sont de 2025.
Je remets le fichier car j'ai ajouté une ligne de code en plus pour le cas ou dans l'inputbox, vous choisiriez d'appuyer sur "ANNULE".
Cdlt
Bonjour fanfan38,
Merci pour votre retour.
Je suis désolé mais ce n’est pas encore le résultat souhaité, je me suis certainement mal exprimé.
Si vous permettez, je reprends mes explications mais cette fois-ci, nous allons prendre un exemple.
Précisions : Lorsque je parle que l’opérateur doit préciser deux informations, la première information c’est l’année de naissance, la 2e information c’est : Soit indiquer le père ou la mère, jamais les deux au même temps, comme c’est le cas maintenant.
Prenons un exemple : on vas chercher les jeunes de l’année 2025, pour cela, on précise alors l’année 2025 dans le comboBox1.
Cas où je dois chercher les jeunes seulement par leur père :
On va chercher les jeunes d’un père (Par exemple : "Abd27-033/2024 M", sans s’occuper de la mère, pour cela, on précise le mâle dans le ComboBox2 et on n’indique rien dans le comboBox3, dans notre exemple, il s’agit du père "Abd27-033/2024 M", les jeunes de ce père se trouvent dans les lignes suivantes :
271 – 272 – 273 – 274 – 275 – 276 – 317 et 318, on doit donc afficher les données de les lignes mentionnées dans la feuille "Affiche".
Cette façon de faire en indiquant seulement l’année et le père, me permets d’afficher les jeunes du père concerné même si ce dernier à eu des femelles différentes.
Cas où je dois chercher les jeunes seulement par leur mère sans s’occuper du père: pour cela nous allons prendre un exemple, la femelle " Abd27-017/2023 F", pour cela, on va préciser qu’il s’agit de l’année 2025 à préciser dans le ComboBox1, ensuite, on va choisir la femelle "Abd27-017/2023 F" dans le ComboBox3, sans rien sélectionner dans le ComboBox2n donc, on ne s’occupe pas du père, les lignes qui seront affichées dans la feuille "Affiche" sont : 278 – 323 – 324 et 325.
Information : On peut remarquer que cette femelle (mère) à été accouplée par deux mâles différents, le fait de ne s’occuper du père me permet d’afficher tous les jeunes de cette femelle "Abd27-017/2023 F", peu importe le père.
Je reste toujours à votre disposition au besoin.
Je vous remercie de votre patience.
Salutations.
Bonjour Arturo83,
Merci pour votre retour.
En effet, dans le cas présent, l’inputbox fonctionne très bien, mais seulement si je rentre les informations dans l’inputbox concernant les mères.
Or, ce que je souhaite c’est différent, à savoir que, le même inputbox doit me permettre d’aller chercher les jeunes soit du côté des mères ou soit du côté des pères.
En réfléchissant bien, je penses qu’il serait souhaitable d’avoir deux inputbox, le premier inputbox, c’est pour y indiquer Soit "P" pour afficher les jeunes d’un père, ou "M" pour afficher les jeunes d’une mère.
En résumé, si la réponse au premier Inputbox est égale à "P", cela veut que le recherche va s’orienter du côté des pères, donc, la recherche va se faire précisément dans la colonne "B" de la feuille "B_D". Si par contre la réponse au premier Inputbox est égale à "M", cela veut dire que la recherche va s’orienter du côté des mères, donc dans la colonne "C" de la feuille "B_D".
Dans le 2e inputbox, on pourra indiquer soit les premières initiales ou la référence complète du père ou de la mère, vous pouvez coder comme vous le souhaiter.
J’espère que j’ai bien expliqué ce que je souhaite avoir, de manière à vous permettre d’écrire un code avec ce que j’explique maladroitement avec des mots..
Je reste à votre disposition au besoin.
Bonne programmation.
Cordialement.
re,
Bonjour,
En effet, dans le cas présent, l’inputbox fonctionne très bien, mais seulement si je rentre les informations dans l’inputbox concernant les mères. Or, ce que je souhaite c’est différent, à savoir que, le même inputbox doit me permettre d’aller chercher les jeunes soit du côté des mères ou soit du côté des pères.
En fait, pour les mâles, j'avais pris en compte la lettre "P" comme "Pères" au lieu de "M" d'où l'erreur que vous avez constaté, j'ai rectifié et mis "M" comme "Mâles"Exemple: NIM ou NIF, la dernière lettre n'est pas obligée d'être accolée aux autres.
De plus j'ai ajouté une réinitialisation des valeurs avant la saisie dans l'inputbox, car j'ai constaté que la dernière saisie restait en mémoire et que cela pouvait fausser le résultat.
J'ai aussi ajouté l'option sui vous permettra de saisir indifféremment les lettres en minuscules ou majuscules.
Désolé pour ces manques d'attention de ma part.
Cdlt
Bonjour
On va y arriver…
la liste ne va sur la feuille Affiche que lors de la validation
A+ François
Bonjour Arturo83, FanFan38 et BsAlv,
Merci à tous les trois pour vos propositions respectives..
Je salue au passage BsAlv et je lui dit que je suis content de le retrouver
FanFan38 a dit : On va y arriver…
Je lui répond qu’on y est, j’ai trois propositions fonctionnelles, il faut marquer le sujet comme résolu en choisissant une proposition parmi les trois et pourtant, elles sont toutes parfaite.
Je vais choisirais une parmi les trois à tout hasard et j’espère que personne ne m’en voudra.
Je vous remercie vivement de votre disponibilité.
Cordiale poignée de main à vous trois.