Recherche d'existants dans plusieurs feuilles via Sub

Papynou

XLDnaute Occasionnel
Bonjour le forum,

J'essaye d'utiliser un code de recherche pour éviter la saisie de doublons.

Deux feuilles dans le classeur, "Encours" et "Archives".

Le UserForm1 sert d'interface et d'accueil. Il a un seul TextBox, 2 boutons et 3 labels. Ce UserForm sert de "filtre" et recherche dans les deux feuilles si le numéro saisi dans le TextBox est connu.

Le UserForm2 n'apparaît que SI le numéro saisi dans le UserForm1 est inconnu dans les deux feuilles.

Ensuite, saisie des données puis enregistrement dans la feuille "Encours".

Le problème que je rencontre est que lorsque je veux saisir de nouvelles données, la Sub de recherche ignore la dernière saisie pourtant bien enregistrée :confused:

Est-ce l'histoire de la paille et de la poutre ou est-ce plus grave ? Ci-joint mon fichier qui attends qu'une bonne âme vienne à son secours :D
 
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : Recherche d'existants dans plusieurs feuilles via Sub

Bonjour Papynou, re le forum,

Si j'ai bien compris....

Oui, une nouvelle entrée est bien envoyée dans la feuille Encours, mais pas dans la feuille Archives.

Donc, dans ta "Private Sub Cmb_Enregistrer_Click()", il suffit de rajouter trois lignes pour adresser, aussi, ces éléments dans Archives...

Bon week-end,

Jean-Pierre
 

Papynou

XLDnaute Occasionnel
Re : Recherche d'existants dans plusieurs feuilles via Sub

Bonjour jeanpierre,

Merci de ta réponse :) mais mon problème n'est pas de rajouter une ligne dans "Archives".

Lorsque l'on enregistre une nouvelle ligne avec un nouveau n°, la Sub l'ignore purement et simplement donc on peut saisir ce nouveau n° autant de fois que l'on veut, c'est là mon problème :confused:
 

myDearFriend!

XLDnaute Barbatruc
Re : Recherche d'existants dans plusieurs feuilles via Sub

Bonjour Papynou, jeanpierre, le Forum,

Dans ta Function RechercheExistant(), tu devrais modifier tes 2 lignes :
Code:
[SIZE=2][COLOR=NAVY]If[/COLOR] Cell.Value = Txt_NoClient.Value [COLOR=NAVY]Then[/COLOR][/SIZE]
Comme celle-ci :
Code:
[SIZE=2][COLOR=NAVY]If[/COLOR] Cell.[B]Text [/B]= Txt_NoClient.Value [COLOR=NAVY]Then[/COLOR][/SIZE]
Ton problème vient simplement d'une différence de comparaison entre la valeur de la cellule et le TextBox, d'un côté tu obtenais une valeur numérique et de l'autre une valeur texte, d'où l'absence d'égalité entre les deux et donc, non détection de cette valeur existante. Je t'avoue ne pas avoir bien cerné pourquoi tu n'obtenais pas le même effet avec les autres valeurs déjà présentes dans ta feuille.

Une remarque, par ailleurs, je n'ai pas compris également pourquoi tu avais fait de cette procédure une Function (qualifiée As Boolean) et non une Sub classique, puisque tu ne lui affectes aucune valeur (boolean) en retour et ne te sers d'ailleurs pas d'un retour de cette fonction dans ton code.

Enfin, permets-moi de te féliciter pour la clarté de ton code. Même si nous avons tous des manières différentes de voir les choses, au moins, c'est agréable à lire quand c'est propre comme ça. Bravo.

Cordialement,
 

Papynou

XLDnaute Occasionnel
Re : Recherche d'existants dans plusieurs feuilles via Sub

Bonjour Didier,

Merci de ton intervention, c'est parfait :cool:

Pour le code (dont le papa se reconnaîtra :) ) ce que j'ai fait en bon débutant, je ne l'ai pas adpaté mais "bricolé" et c'est pourquoi il est resté en Function alors qu'il aurait du être en Private Sub :p

Pour la question concernant la recherche dans les feuilles, la seule explication que je vois vient du fait que j'ai saisi manuellement les données et non via l'Usf. Je pense que l'enregistrement à eu lieu sous un format différent ce qui expliquerait pourquoi le .Value fonctionnait pour ces cellules.

Encore merci, surtout de tes féliciations qui venant d'un "Grand Maître" m'encouragent à continuer :)
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 164
Membres
103 149
dernier inscrit
Deepkneec