Probleme recherche par userform

Bonjour,

De nouveau de retour pour encore des questions sur un formulaire de recherche, mais ce coup ci avec des combobox en cascades mais aussi une date limite.

je souhaite que dans ma liste box, au fur et à mesure que mon tri se fait s'affiche les données.

ex : lorsque j'ai choisi le site, excel recherche tous les noms des personnes avec les dates qui arrivent à échéances.....soit les 3 accès.

Mais lorsque je rajoute le combobox en choisissant un accès particulier, il ne recherche que les noms dont les dates arrivent à échéance pour cet accès précis...

Je ne sais pas si c'est compréhensible, donc je vous envoie un fichier....Est-ce faisable et si oui, pourriez vous m'aiguiller, s'il vous plait?

Je rame

13essai-1.xlsm (17.52 Ko)

Bonjour Kro1 le forum
oui c'est possible, là plus le temps, mais ce soir ou demain je te fais cela
a+
Papou

merci papitrec

de mon côté je cherche encore.....j'ai beau regardé pleins de tutos.....pff c'est compliqué surtout que je me suis mise aux macros que depuis 3 semaines

Bonjour

J'ai commencé hier à regarder votre demande.

Petite question : est-ce que vous voulez obtenir les résultats uniquement quand vous avez fait la sélection dans les deux combobox ou déjà une des deux ?

Cordialement

Re

Essayez déjà ce fichier.

A noter que j'ai du enlever l'accent dans le mot Accès. A éviter si vous travaillez avec VBA

Cordialement

7kr01-essai-1.xlsm (23.11 Ko)

Bonjour Dan,

Merci dejà pour ta réponse...En fait lexemple que vous avez fait me convient...LE seul hic, c'est lorsque je veux que tous les sites soient pris en compte....j'ai essayé en rajoutant dans les conditions si le combobox1 = "TOUS", et que le combobox2 est différent de 0 sur la ^meme ligne que vos conditions, mais ca ne marche pas...Comment faire?

Et est-il possible que soit afficher le nom et le prénom??? si oui, ou rajouter la colonne?

Re,

.j'ai essayé en rajoutant dans les conditions si le combobox1 = "TOUS", et que le combobox2 est différent de 0 sur la ^meme ligne que vos conditions, mais ca ne marche pas...Comment faire?

Et est-il possible que soit afficher le nom et le prénom??? si oui, ou rajouter la colonne?

Votre fichier en pièce jointe pour test

Je ne vous l'avais pas dit avant mais attention que dans les fichiers que j'ai posté, j'ai supprimé les infos de ROWSOURCE qui pose quelques fois des soucis dans les codes.

4kr01-essai-2.xlsm (22.64 Ko)

merci encore, mais dans ce cas il ne recherche pas les dates inférieures à mon textbox1, il ne fait que m'afficher la recherche de tous les noms et des accès.....

en fait ce moteur de recherche va me permettre de prévoir 1 mois à l'avance les peronnes dont je dois refaire les accès...en gros, il va rechercher les noms des peronnes dont les dates d'accès sont inférieures à la date affichée dans le textbox1

......Mais jusque là, c'est bien ce que je veux.....

merci encore, mais dans ce cas il ne recherche pas les dates inférieures à mon textbox1, il ne fait que m'afficher la recherche de tous les noms et des accès.....

Oui c'est exact mais comme vous n'aviez pas vraiment précisé au début, je n'ai pas tenu compte de ce critère.

dans le cas de choix TOUS, on ne tiendra pas compte de ce critère. Juste ?

Il faut en fait que pour n'importe quel site et n'importe quel accès, la date soit prise en compte

Ok mais le fait de mettre TOUS sans valeur dans la combobox ACCES va vous renvoyer uniquement la liste sans Date.

Regardez le fichier joint

9kr01-essai-3.xlsm (25.43 Ko)

Attention j'ai changé quelques lignes de code donc repartez toujours du fichier que je vous place ici.

Merci je vais essayer.....

Ouinnnnn

J'ai un bog....erreur d'execution 91...il me souligne la variable col

soit col = Range("F13:H13").Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlPart).Column

(je ne trouve pas mon erreur)...je précise que chez moi, colonne F à H se sont les accès et 13 correspond à la première ligne de mon tableau( soit les en-têtes)

POurriez vous m'expliquer justement cette ligne? Peut-etre que c'est parce que je ne la comprends pas que je n'arrive pas à trouver mon erreur?

Merci d'avance

Re

soit col = Range("F13:H13").Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlPart).Column

(je ne trouve pas mon erreur)...je précise que chez moi, colonne F à H se sont les accès et 13 correspond à la première ligne de mon tableau( soit les en-têtes)

Ben faut tout changer alors... pourquoi vous ne mettez pas un fichier identique à ce que vous avez ???

Pour Col, vous avez des accents sur Accès ?? Si oui je vous ai écrit plus haut qu'il fallait les supprimer. La ligne col sert à trouver où se trouve la colonne pour Accès1, 2, et 3.

- Quelles sont les infos entre colonnes B et H ??
- Cherbourg se trouve en ligne 14 ? et quelle colonne ?
- A quelle lignes se trouvent la liste des sites et Accès ?? en colonnes I et J

Donnez moi votre fichier c'est encore mieux (sans données confidentielles) ou si vous ne voulez pas, mettez le fichier avec la place exacte de toutes les infos.

Bonsoir,

Je vous joint mon fichier que j'ai vidé de ses données.....Ce fichier me rend dingue

1essai-1.zip (292.63 Ko)

Re

Bon il y avait quelques erreurs :

- Le message qui vous était renvoyé était dû au fait que vous aviez mis le accès en F13 alors qu'il devait être en H13. Regardez votre liste en colonne P
- Deux dans le code Private Sub ComboBox2_Change() :
---> Dans la boucle for i = 14 to .... le chiffre 8 passe à 13 vu que avez déplacé votre tableau de la ligne 8 à 13
---> Dans le cas du choix TOUS, vous aviez un bug.car une ligne d'instruction était incorrecte et vous aviez une ligne d'instruction en trop pour les dates. Si vous voulez des dates, il faudra savoir quelle est la colonne à considérer dans ce cas (F, G ou H ?). je vous en ai parlé dans un post précédent

Votre fichier en retour pour test

10kr01-essai-4.zip (298.91 Ko)

Cordialement

Bonjour Dan,

Une bonne nuit de repos et tout s'est mis en place...J'ai trouvé mon erreur...j'avais du mal à comprendre pourquoi tu me parlais d'inversion dans la colonne P.....Mais ca y'est....Ouf....

Serait-ce trop abuser si en plus de cette recherche par rapport à textbox 1 , je lui imposais également de faire une recherche comme :

si combobox1 = "Fin accèsBN ou Fin INBS", alors textbox 1, alors que si combobox 2 = "Fin CAZ", il me fasse la recherche par rapport à un textbox 2 dont la dtae est celle d'aujourdhui + 60?

Est-ce dur à rajouter?

Merci encore pour cette aide

Bonjour

si combobox1 = "Fin accèsBN ou Fin INBS", alors textbox 1, alors que si combobox 2 = "Fin CAZ", il me fasse la recherche par rapport à un textbox 2 dont la dtae est celle d'aujourdhui + 60?

Non on peut faire mais pourquoi utiliser une Textebox 2, on peut tout faire à partir de la textbox 1. En gros la combobox2 = FN CAZ, on change la règle de base actuelle.

Cela te convient cela ? Si oui je continue sur le dernier fichier envoyé

Cordialement

Oui, ca me convient...En gros, il recherche les accès bn et inbs sur la date d'aujourdhui + 30 jourset quand le combobox2 est sur fin caz, on lui dit de rechercher sur 60 jours....Oui ca me va....

encore une question.....

est il possible de protéger la feuille tout en ayant la possibilité de modifier la feuille que par les userform...

ex : je protège ma feuille, mais ne peut la modifier que lorsque je passe par le userform "modifier"? la date ne peut être changer qu'à l'aide du formulaire en fait?

Bonjour,

Point 1

Oui, ca me convient...En gros, il recherche les accès bn et inbs sur la date d'aujourdhui + 30 jourset quand le combobox2 est sur fin caz, on lui dit de rechercher sur 60 jours....Oui ca me va...

Dans l'userform FNAcces, remplacez ce code par celui ci-dessous :

Private Sub ComboBox1_Change()
If ComboBox1.Value = "Fin CAZ" Then TextBox1.Value = Date + 60 Else: TextBox1.Value = Date + 30
Call ComboBox2_Change
End Sub

Point 2

est il possible de protéger la feuille tout en ayant la possibilité de modifier la feuille que par les userform...

Oui c'est possible. Avec ce genre d'instruction :

Sheets("Accès").Protect Password:="Votre Mot de passe", Userinterfaceonly:=True

Remarque

En voyant votre fichier, pourquoi avez-vous fait une concaténation dans votre feuille pour le nom et prénom ? Cela vous impose de mettre une formule alors que VBA pouvait faire la même chose sans utiliser une colonne supplémentaire.

Autre chose, certaines définitions de plage pouvaient être évitées comme vous utilisez les fonctionnalités de tableaux prédéfinis.

Cordialement

Rechercher des sujets similaires à "probleme recherche userform"