Creer un userform de recherche

bonsoir à tous!

Une fois de plus, j'ai besoin de vous.

Ce que je souhaite faire doit être assez basique:

J'ai créé un tableau qui répertorie des données par dates. Il peut y en avoir plusieurs centaines. Je souhaite créer un bouton de recherche qui, en y saisissant une donnée, permettra de voir si elle s'y trouve et si oui, à quelle(s) date(s).

Compte tenu de la multitude de données que mon tableau contiendra, Ctrl+F a atteint sa limite.

J'ai découvert aujourd'hui l'existence d'userform.

Le hic, c'est que je n'ai aucune connaissance en programmation. J'ai commencé à lire les cours dispo sur le forum, mais je crains d'y passer un certain temps et j'ai un besoin urgent.

Quelqu'un pourrait il avoir la gentillesse de m'aider (encore une fois), en m'indiquant les "codes" à rentrer. J'ai tenté de créer l'userform comme j'ai pu et je ne suis même pas sur de l'avoir bien fait...

Je joins le tableau en PJ.

Je suis gêné de vous solliciter aussi régulièrement car j'ai pour habitude d'être autonome mais là.....j'abdique...

Merci beaucoup

Bonjour

Chuckeay a écrit :

Ctrl+F a atteint sa limite.

Quelle limite ?

Explique clairement ce que tu veux

Que recherches tu ?

Comment veux tu avoir les résultats ?

Que se passe t'il si plusieurs résultats à la même date ?

Pourquoi une liste déroulante ?

Que veux tu dans cette liste ?

Bonsoir,

C'est vrai, je n'ai pas été très clair.

En fait, j'ai énormément de données à saisir dans un tableau. Lors de la saisie, je les classe par date. Je souhaiterais, au moyen d'une recherche avec un Userform, que la date et la donnée s'affichent sur une même ligne, dans une textbox.

Si la donnée est présente sur plusieurs dates, ça ne pose pas de problème du moment qu'elles s'affichent ligne par ligne(chronologiquement).

Lorsque je disais que CTL F atteint sa limite, c'est parce que la donnée, un fois, n'a d'intérêt que si on peut voir facilement la date a laquelle elle est apparue. Et Ctrl-F renvoie directement à la cellule, qui est souvent noyée parmi ses semblables....

J'ai actualisé mon fichier (plus lisible et un peu mieux fini). Pour la liste déroulante, c'était un loupé...sorry. J'ai essayé de construire l'userform à partir de ce que j'ai pu trouver sur le net...Je suis ouvert à toute modif

Je reste dispo, ça sent la nuit blanche...Merci

553test-userform1.xlsm (91.83 Ko)

Bonjour

Pas de réponse à cette question

Banzai64 a écrit :

Que se passe t'il si plusieurs résultats à la même date ?

Et voici d'autres questions

Ensuite que veux tu faire une fois que la recherche soit terminée ?

Faire comme Ctrl + F , allez directement sur la date, la valeur recherchée

Faut-il chercher dans toutes les pages ?

Il n'y aura que ces pages ?

Décidément, je n'y vois plus très clair.

J'ai oublié de préciser. Il ne peut y avoir deux fois la même donnée à la même date. le fichier est alimenté manuellement par des listage qui ne peuvent comporter de doublons.

En fait, je n'ai pas besoin que l'userform me renvoie à la ou les cellules qui matchent avec la donnée recherchée.

J'ai juste besoin qu'il m'indique deux choses:

1) Si recherche infructueuse car donnée absente dans le tableau => message type "désolé, la donnée ne figure pas dans le tableau"

2) Si recherche aboutie => rappel de la donnée recherchée + date à laquelle elle a été trouvée

2 bis) Si recherche aboutie mais plusieurs résultats (sur des dates différentes):

=> rappel de la donnée recherchée + date à laquelle elle a été trouvée

rappel de la donnée recherchée + 2ème date à laquelle elle a été trouvée

etc....

Je prévois d'insérer un userform par onglet, qui ne fait la recherche que dans son onglet (c'est plus simple pour moi d'avoir un onglet/ mois pour la saisie manuelles des données qui feront, par la suite l'objet de la recherche via l'userform.

Thanks et merci pour ta patience

Bonjour

A tester

Merciiiiiiiiiiiiiiiiiiii! c'est top! je vais essayer de comprendre le squelette du code Merci infiniment!

bonjour à tous,

je reviens vers vous dans le cadre de mon code inhérent à mon userform.

Je l'ai fait évoluer depuis le dernier message, jai réussi à faire ce que je voulait, cependant, n'ayant aucune connaissance en programmation, j'ai besoin de vos lumières.

Voici mon code:

Option Explicit

End Sub

Et voici mes requêtes:

- je pense avoir saisi des éléments dans le désordre (notamment les "private sub" de la fin. Quelqu'un pourrait il avoir la gentillesse de me dire comment organiser un code.

- j'ai un bouton de recherche dans l'userform. j'ai constaté qu'en tappant sur entrée (sans aller sur le bouton), la recherche fonctionne, mais il faut tapper 2 fois: pourquoi?

- Je souhaiterais que la recherche basée sur les termes saisis dans la TbRecherche (textbox) respectent l'ordre de saisie du terme en question. En gros, j'aimerais que la recherche porte sur les termes "commençant par...".

En attendant vos réponses, je vais aller lire les "cours VBA" pour essayer de mieux comprendre....

Merci

Bonjour

Alors dans l'ordre

Chuckeay a écrit :

- je pense avoir saisi des éléments dans le désordre (notamment les "private sub" de la fin

Ces Private Sub apparaissent quand tu cliques 2 fois sur un contrôle de l'userform

Il sont classé par ordre alphabétique

Ce n'est que l'ossature de la procédure

Et chose importante (quand ils sont vides - cas actuel -) ils ne servent à rien (juste à ralentir - µs -) le programme, donc tu peux les virer

Chuckeay a écrit :

mais il faut tapper 2 fois

Fonctionnement normal, le 1er "Entrée" sort du contrôle (TextBox) et se place sur le contrôle suivant (ordre de tabulation - propriété TabIndex -) et le second "Entrée" active le contrôle

Je ne sais pas bien expliquer (surtout à l'écrit)

Chuckeay a écrit :

En gros, j'aimerais que la recherche porte sur les termes "commençant par...".

Modifié dans ce fichier

Bonsoir,

Merci pour ta réponse BANZAI

J'ai modifié un le paramètre du nombre de caractères saisis et l'ai réduit à 2.

Si je tappe 13, les 13 contenus par les dates ressortent. Comment limiter le périmètre de recherche aux cellules figurant en dessous de la ligne de dates?

@ te lire

Bonsoir

A vérifier

Hello! une fois de plus, mes remerciements je t'adresse.

J'ai commencé à lire les cours VBA, je commence à y voir plus clair.

J'ai procédé à la correction grace à ton fichier. En revanche, je n'arrive pas à saisir la logique de classement des données dans la listbox:

J'ai essayé avec le chiffre 19: il me fait bien remonter tout ce qui commence par 19, mais de manière assez désordonnée (surtout au niveau des dates). A quoi est ce du?

273chuck.xlsm (98.35 Ko)

Bonjour

Modifie la ligne correspondante

Set Cel = F.Rows("17:" & Rows.Count).Find(what:=Me.TbRecherche, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByColumns)

Re

Merci pour ta réponse. J'ai cependant trouvé une altrernative à ma problématique en cadrant la valeur recherchée (j'ai remplacé "xlpart" par "xlWhole").

Merci pour ce retour.

Rechercher des sujets similaires à "creer userform recherche"