Recherches dans des champs aléatoires

Bonjour à tous,

Après un premier essai très concluant, je vais tester à nouveau les compétences des membres de ce forum.

Dans le fichier annexé:

14test.xlsm (278.00 Ko)

Il y la feuille "données du jour" Dans cette feuille les colonnes A à BG comprennent des données personnels (que j'ai du effacer pour des raisons de protection des données) ensuite il y a des colonnes en vert (dans cette exemple de BH à DE), en orange (dans cette exemple de DF à DJ), en bleu (dans cette exemple de DK à FG). Les nombres de colonnes dans ces 3 champs (vert, orange, bleu) est aléatoire puisqu'il dépend du nombre de métiers de la personne/ligne.

Mon souhait:

Je souhaiterai grâce à un Combobox? pouvoir faire une recherche d'un métier soit dans le champ vert, soit dans le champ orange, soit dans le champ bleu, soit dans toutes les combinaisons possibles et qu'ensuite toutes les lignes qui comprennent le métier recherché soient copiées dans le feuille "recherche".

J'ai cherché une solution dans le forum mais, ce qui me pose problème c'est le nombre aléatoire de colonne dans les différents champs. Je suis bien conscient qu'Excel n'est pas l'outils idéal pour ceci mais, je n'ai pas la possibilité d'implémenter une base de données.

J'espère avoir été clair, et je suis prêt à être frustré devant la simplicité de votre solution

J'aimerais bien faire remarquer que si une personne pouvait avoir plusieurs métiers, alors il eu été préférable de créer plusieurs lignes pour cette personne dans une table dédié "métier", et de faire des jointures... Excel n'est pas une BDD, mais cela n'empêche pas que des données bien rangées y soient plus simples à trouver.

Sinon, on ajoute pour chaque ligne une colonne de test, qui recherche dans toutes les colonnes si l'une des colonnes a la valeur recherchée, et ensuite, on sort toutes les lignes (filtre ? filtre calculé ?) pour lesquelles cela renvoi vrai.

Par contre, pour chercher uniquement dans les colonnes "vertes", je ne connais personnellement pas de formule qui sache aller lire la mise en forme, donc ce sera macro.. Sauf à préciser en entête de colonne sa couleur, mais le test devient immonde.

Par contre, si il y avait qu'une seule table avec tous les métiers de la personne (sur plusieurs lignes, avec la catégorie du métier), il suffirait d'un simple nb.si, ou nb.si.ens pour savoir si il a le métier en question dans la catégorie en question, et hop, cela ressortirait, dans un nuage de petits papillons blancs tous jolis... Mais bon, une macro, c'est pas mal non plus hein ? :p

Salut Peuwi,

C'est clair que dans un monde parfait, je n'aurai même pas besoin d'Excel car la BDD d'où proviennent les données me permettrait de pouvoir rechercher et traiter les données. Malheureusement ce n'est pas le cas et je suis contraint d'utiliser Excel.

Donc, oui j'ai besoin de faire ces recherches soit dans la liste de métiers exercés (vert) soit dans la liste du dernier métier (orange) soit dans la liste des métiers recherchés (orange).

Par contre je ne suis pas braqué pour les couleurs, ont peut les changer

Bonjour Gladiator,

comme on se retrouve, dis-donc!

quelque chose comme ça ?

Pour démarrer, clique n'importe où dans "Données_du_jour"...

Si il y a un défaut, tu sais où appeler! 8)

A+

J'aurais peut-être dû mettre quelques explications tant qu'à faire, non?

Pour contourner le problème des couleurs (qui était vraiment très ...), j'ai inséré une nouvelle colonne devant chaque zone de couleur avec le repère "BDD1", "BDD2" en 1ère ligne et BDD0 à la fin de la dernière zone. Pas effacer, sinon, patatras...

Petit boulot pour toi lorsque tu recevras de nouvelles BDD... eh oui!

Tu peux créer 10 zones de couleur d'autant de colonnes que tu veux pourvu que tu conserves le même format (5 colonnes par métier) et d'autant de lignes que nécessaire.

Les métiers sont répertoriés et triés avant injection dans la Combo où tu retrouveras autant de CheckBox colorés, visibles et activés qu'il y a de zones de couleur.

Choix des données, faut pas t'expliquer, je suppose...

START = calcul => "V" vert = calcul terminé =>clic=> "Recherche" => "X" rouge pour effacer et recommencer une nouvelle recherche.

Enjoy!

A+

Salut Curulis57,

Effectivement on se retrouve, c'est la continuité de ton "Ecremage" J'ai regardé la solution que tu m'as proposé et cela fonctionne tiptop. Je vais l'implémenter sur l'environnement de travail pour valider la chose. C'est marrant, cette nuit j'ai aussi pensé à mettre des colonnes vides pour délimiter les champs de métiers. La différence c'est toi tu l'as fait Je reviens vers toi dès la validation finale mais, d'ores et déjà un grand merci et qui sait à bientôt.....

Salut Gladiator,

Il y a encore des choses qui ne me plaisent pas et que je vais chercher à améliorer.

Tu peux, si tu veux, déjà ajouter ceci à la dernière ligne du If...ENDIF de Userform.Activate

LblMétiers.Caption = iFlag3 & " métiers répertoriés"

après avoir eu soin de renommer la Label de la Combo en "LblMétiers. Tu auras ainsi le nombre de métiers répertoriés.

Ouais, inutile, je sais mais, j'aime bien utiliser les infos disponibles!

Bonne journée!

A+

Rebonjour,

J'ai testé avec le nombre de métier et cela fonctionne. Cependant, je sais Noël n'est pas encore là, j'aurais encore une demande

Je voudrais lors de la copie des données sur la feuille "Recherche" garder la première ligne de la feuille "Données_du_jour" à savoir les intitulés. Je pense bien que cela va se situer dans cette partie du code mais, je ne sais pas comment l'écrire.

With Worksheets("Recherche")

iTemp = .Range("A1").Value

'.Range("A2:AA" & iTemp).ClearContents

.Range("A2000:AAA2250").Copy Destination:=.Range("A2:AAA250")

.Range("C1").Value = " Recherche d'un(e) " & sFlag

End With

Par là même, c'est bien juste que si j'active la ligne

'.Range("A2:AA" & iTemp).ClearContents

Cela va permettre d'effacer la dernière recherche effectuée?

De même, comment faire pour que l'Userform s'ouvre sur la feuille "Recherche" plutôt que sur "Données_du_jour"? En effet, quand je fais ma macro de formatage, le userform apparaît chaque fois. Comme tu le vois, il me reste encore plein de chose à apprendre... Mais, je persévère!

Salut Gladiator,

pas le temps maintenant... grosse fête de famille en préparation...

Je te fais ça avec plaisir en soirée!

Adtaleur!

Curulis57,

Pas de problème, pour ma part c'est une journée de séance demain alors pas de stress. J'ai, encore!, une autre demande:

actuellement la recherche se fait en mode OU c'est à dire que si l'on recherche un vendeur dans les champs "métiers exercés" et "métiers recherchés" le résultat sera tous les vendeurs ayant exercés OU recherchés.

Dans mon cas, il serait plus judicieux d'utiliser le mode ET

En tous les cas, merci pour les solutions proposées qui sont impeccables. Cela me montre la distance qu'il me reste encore à parcourir...

Bonne préparation de fête.

Je ne comprends pas ta dernière demande! ET/OU...

Ta recherche s'effectue sur UN métier, alors...

Tu peux développer avec un exemple ?

Amuse-toi bien, demain!

A+

Ave Gladiator,

le franc étant tombé, j'ai compris ta demande et effectué les changements.

La UserForm ne s'ouvre plus que depuis la première ligne de "RECHERCHE", ceci pour te permettre de travailler sur la feuille, une fois que les résultats sont affichés.

Les en-têtes sont en place et figés pour un scroll sans perte de repères.

L'ergonomie de la UserForm est en progrès (pas encore parfaite mais bon...) : le bouton SORTIE est affiché en permanence plus d'autres petits détails que je te laisse découvrir.

Gros truc : la première plage-métier de 5 colonnes de la catégorie bleue ne compte que... 4 colonnes!!!!

Forcément, ça fout le berdol dans le potage!!!

Alors, soit il faut (comme je l'ai fait) vérifier ta BDD à la réception et insérer des colonnes vides là où c'est nécessaire, soit modifier le code pour qu'il fasse le travail lui-même!! (euh, pas tout de suite, j'ai plusieurs marmites de lait sur le feu !)

Conclusion : il y a maintenant plus de 360 métiers répertoriés!

Autre gros truc : j'ai eu l'idée (au choix de l'utilisateur, évidemment!) de limiter l'affichage "RECHERCHE" aux plages-métiers sélectionnés uniquement et pas toute la ligne.

Pour cela, j'ai placé une CheckBox dans la UserForm appelée "Limité aux cellules" pour choisir un affichage ou l'autre.

Voilà, teste tout cela! Ça va t'occuper un bout de temps, je crois!

Avec plaisir!

A+

Salut Curulis57,

Effectivement cela va m'occuper un moment... En ce qui concerne la disparition d'une colonne dans le champ bleu, c'est une erreur (certainement due l'insertion des colonnes vides BDD1, BDD2, BDD3). Je vais corriger cette erreur (ça c'est dans mes cordes ).

Je reviens auprès de toi dès que j'ai pu tester tes améliorations c'est à dire pas avant demain. D'avance merci pour ton travail.

Salut à toi,

J'ai regardé ta dernière version:

Gros truc : la première plage-métier de 5 colonnes de la catégorie bleue ne compte que... 4 colonnes!!!! Je ne sais pas pourquoi il me supprime cette plage mais, vu qu'elle est toujours vide et au même endroit, j'ai fait une insertion manuel dans la macro.

Le truc ci-dessous me fait un peu plus peur...

Autre gros truc : j'ai eu l'idée (au choix de l'utilisateur, évidemment!) de limiter l'affichage "RECHERCHE" aux plages-métiers sélectionnés uniquement et pas toute la ligne.

J'avais pensé à la même chose, mais pas osé le demandé!! C'est trop fort. Demain, je teste dans l'environnement de travail et je revient auprès de toi pour la validation finale (à moins d'autres idées pendant la nuit )

Merci

Ave Gladiator,

si, j'avais pensé à un autre truc mais sans trop savoir comment régler l'affichage : cacher une partie des colonnes-intitulés pour rapprocher les plages-métiers et essayer de caler tout ça sur un écran en zoomant!

Mais, ce serait peut-être trop serré et petit pour une lecture confortable... à moins que tu n'aies un écran XXL !

A+

Salut à toi Ô Curulis57,

Désolé pour ma réponse tardive mais, j'ai été sur les plots pendant quelques jours. Je voulais te remercier pour le travail que tu as fait qui correspond exactement à ce que je cherchais. J'ai fait quelques améliorations sur le code du UserForm (le copier-coller pour effacer les données) et sur son apparence et grâce à toi, j'ai rajouté une macro évènementielle (maintenant que j'ai compris le principe ).

Vu que le fichier est un peu gros, je te le ferai suivre cette semaine par un autre biais.

Pour ce qui de l'affichage pas trop de problème, on travaille sur du 27".

Grâce à toi, j'ai d'autres idées pour améliorer cet outils de travail donc qui sait... nos chemins se croiseront à nouveau.

Ave Gladiator,

au plaisir de te rendre service.

A+

Hello Curulis57,

Voici le lien pour la dernière version avec les modifications dont je t'ai parlé dans mon dernier post

Bonne journée

Salut Curulis57,

curulis57 a écrit :

Merci pour ton message. Au sujet de ta demande de proposition, après avoir testé ta solution dans la vraie vie! Il y a quelque possibilité d'amélioration:

  • Quand l'on lance une recherche, il est possible que l'on veuille couvrir une plage de métier. Par exemple si l'on cherche un automaticien, on voudrait chercher comme automaticien, monteur-électricien, électricien. Ma demande serait donc d'avoir 2 ComboBoxMétiers supplémentaires avec 2 cases à cocher pour permettre une recherche ET (la combinaison de recherche se faisant en OU). De cette façon on pourrait combiner les recherches, Automaticien ET monteur-électricien OU Electricien.
    Toujours dans une amélioration de l'efficience de la recherche. Tu te rappelles que sur ta macro d'écrémage le champ métier comprend 5 colonnes. Je voudrais pouvoir rajouter les colonnes 2 (Qualification) et 5 (Expérience) grace à des 2 ComboBox. Le but? Pour l'instant (et les macros ne peuvent rien pour ça!) les nombres que tu as vu sur la base de données correspondent à des niveau de qualification (type de diplôme) et du nombre d'année d'expérience. Grace à cela, je pourrais chercher des électricien avec un niveau de qualification défini et un nombre d'année d'expérience.

Tu regrettes d'avoir posé la question non?

Ave Gourmandus !

non, sachant très bien ce que cela implique, je ne regrette pas!

Il va quand même falloir me laisser le temps de respirer jusqu'à lundi soir, le temps de terminer un gros truc qui traîne depuis plusieurs semaines.

Maintenant, 1ère précision : recherche combinée : tu parles bien dans ton exemple d'un Automaticien ET monteur-électricien OU Automaticien ET Electricien ? Précis, précis, stp!

2e précision : les qualifications recherchées s'appliquent-elles à UN métier principal (automaticien), au métier "secondaire' (électricien) ou aux deux combinés simultanément ? Précis, précis, stp!

Un ordi fait tout mais c'est très con!

Tu ne regrettes pas de devoir réfléchir à tout ça un jour férié ?

Joyeuses Pâques!

A+

Rechercher des sujets similaires à "recherches champs aleatoires"