|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre expérimenté
![]() René LE CORNECAssistant aux utilisateurs Inscription : septembre 2007 Messages : 1 114 ![]() |
Bonjour à tous,
J'ai un UserForm dans lequel il y a une TxtBox nommée TxtNum. Dans celle-ci je saisi un numéro. Ce que je cherche à faire c'est que si ce numéro existe déjà dans la feuille "Engagements" Colonne C alors un message apparait indiquant que ce numéro existe déjà. Cela doit ce faire dès la saisie, rendant la validation impossible. Ensuite, le numéro saisi est effacé. Je ne sais pas comment faire, pouvez-vous m'apporter votre aide s'il vous plait ? Je vous en remercie par avance Bien cordialement
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate) |
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 885 ![]() |
Bonjour,
Tu peux utiliser l'évenement BeforeUpdate et tester si on trouve le numéro Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||
|
|
10
|
|
|
#3 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Bonjour,
Pour vérifier si la valeur existe déjà dans ta colonne tu peux utiliser la fonction suivante (s'applique à un objet Excel.Range): Code :
Function Find(What, [After], [LookIn], [LookAt], [SearchOrder], [SearchDirection As XlSearchDirection = xlNext], [MatchCase], [MatchByte], [SearchFormat]) As Range
Pour la TextBox, je pense que ça peut se faire comme ça: |
|
|
10
|
|
|
#4 | ||
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
Bonjour,
Pour ajouter une autre proposition sensiblement identique à celle déjà donnée par Jérôme. Code :
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
||
|
|
10
|
|
|
#5 | ||
|
Membre expérimenté
![]() René LE CORNECAssistant aux utilisateurs Inscription : septembre 2007 Messages : 1 114 ![]() |
Merci à tous pour vos réponses. Je les teste et je vous tiens au courant.
Encore merci J'ai mis en place le code de Jérôme et il fonctionne plutôt bien. J'ai ajouté le code pour la mise à zéro de la zone de saisie dans la TextBox. Cependant, je rencontre un problème auquel je n'avais pas pensé, en effet si la zone reste vide, le message apparaît, ce qui est normal puisque dans la colonne de mon tableau il y des cellules vides. Comment éviter cela ? Merci Voici mon code : Code :
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate) |
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
Bonjour,
Avec le code que je t'ai proposé il n'y a pas ce problème.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
10
|
|
|
#7 | ||
|
Membre expérimenté
![]() René LE CORNECAssistant aux utilisateurs Inscription : septembre 2007 Messages : 1 114 ![]() |
Philippe,
Je mets ton code au même endroit que le mien ? Voici le code adapté à mon cas : Code :
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate) |
||
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 306 ![]() |
Bonjour,
Tu prends le code tel quel. Tu remplaces TextBox1 par TxtNum et tu adaptes range("maPlage") par ton nom de feuille et une plage de cellules. Petite rectification par rapport à ma réponse de tout à l'heure. Je n'ai pas de problème de message indiquant "Existe déjà" si le TextBox est vide parce-que j'ai utilisé une plage nommée. Si effectivement, tu utilises mon code avec la colonne D entière ( Range("$D:$D") ), le problème sera identique. Je ne fais jamais de recherche sur une colonne entière mais sur une plage bien définie. Citation:
Si tu as un UserForm avec TextBox, je suppose que tu as également un au moins un CommandButton te permettant de mettre à jour, sur ta feuille le contenu des TextBox de ta UserForm. [EDIT] Je suis dubitatif quant à ta question. Je n'ose imaginer que tu as programmé cette Userform dans le seul but de vérifier si la valeur du TextBox n'a pas de doublon dans la colonne C ?
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
|
10
|
|
|
#9 |
|
Membre expérimenté
![]() René LE CORNECAssistant aux utilisateurs Inscription : septembre 2007 Messages : 1 114 ![]() |
Bonjour,
Non bien sûr, je n'ai pas créé un UserForm dans le seul but de contrôle, il me sert à une saisie complète d'élément. J'ai voulu mettre en place ce contrôle car les utilisateurs entrent souvent des doublons et je veux que la vérif se fasse dès la saisie. Mon problème est résolu. Merci à tous pour votre aide et vos précieux conseils. Bien amicalement
__________________
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate) |
|
|
00
|
|
|
#10 | ||||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 885 ![]() |
Citation:
Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
||||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com