• Initiateur de la discussion Initiateur de la discussion Laurent
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Laurent

Guest
Bonjour,

J'ai un userform avec entre autre un champ client.
Lorsque je clique sur ajouter j'aimerai qu'il fasse d'abord un vérification dans le tableau pour voir si le client n'est pas déjà existant, et si oui me mettre un message d'alerte.

Quelqu'un peut m'aider?

Merci beaucoup
Laurent
 
Adettons que le nom du client soit inscrit dans la zone de texte TextBox1 et que les noms soient répertotiés dans la feuille 'data', colonne A:

sud vérif ()

dim nom as string
dim cel_fin as range

nom=TextBox1.value
'on charge le nom en mémoire

'activation de la feuille 'data'
sheets.('data').activate

for each c in range('A1:' & Range('A65000').End(xlup).Address
'pour toutes les cellules no vides de la colonne A
if c.value = nom then
msgbox'Ce Nom existe déjà dans la base de données', vbexclamation
exit sub
end if
next c

msgbox 'Le nom ' & nom & ' n'apparaît pas dans la liste.'

end sub
 
Bonjour

tu n'en dis pas lourd 🙂 une pièce jointe aurais été utile.

en imaginant tes données dans la colonne A, se type de code va controler la saisie dans la textbox :

Option Explicit
Option Compare Text 'permet de s'affranchir des majuscules et minuscules
Private Sub CommandButton1_Click()
Dim c As Range

'si le textbox1 est vide, on sort
If TextBox1 = '' Then Exit Sub

'pour chaque cellule de la ligne1 à la dernière cellule non vide de la colonne A
For Each c In Range('a1:a' & Range('a65536').End(xlUp).Row)
   
'si la valeur de la cellule = la valeur du textbox, alors...
   
If c = TextBox1 Then
       
'on envoi un message
        MsgBox 'STOP !!!, ce nom existe déjà', , 'Attention...'
       
'on redonne le focus au textbox1
        TextBox1.SetFocus
       
'on prépare le textbox1 pour la correction
        TextBox1.SelStart = 0
        TextBox1.SelLength = Len(Me.TextBox1)
       
'on sort de la macro
       
Exit Sub
   
End If
Next c

'sinon on poursuit le traitement

   

End Sub

salut
 
La même avec un exemple ...
et quelques corrections pour que ça fonctionne (il manquait une parenthèse).

A+ [file name=verif.zip size=10023]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/verif.zip[/file]
 

Pièces jointes

re laurent, zz, le forum

Souvent dans les applis professionnelles, le programme te vide ton textbox, pour un petit s ou e mal placé, ca m'énerve 🙂

je trouve plus élégant de proposer la correction à l'utilisateur, en lui montrant qu'il y a une erreur de saisie et en proposant la possibilité soit de corriger soit de vider le textbox.

sellength permet de sélectionner l'ensemble des caractères de la textbox (en bleu) de la longeur de la valeur de celle-ci, que l'on obtient par le len.

je suis clair là ??? 😱

salut
 
C'est très clair,
et je suis de ton avis;
je pense que je vais intégrer ça à l'interface que je développe depuis ... presque plus d'un mois maintenant 😱
Et c'est pourtant loin d'être au top).

Le pire, et le plus long, c'est de gérer les erreurs des futurs utilisateurs :silly:

merci d'avoir répondu,
et A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Formule Outlook,
Réponses
8
Affichages
161
  • Question Question
Microsoft 365 Problème Code VBA
Réponses
9
Affichages
398
Retour