Vérification

  • Initiateur de la discussion Laurent
  • Date de début
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
 

ZZR09

XLDnaute Occasionnel
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
 

Hervé

XLDnaute Barbatruc
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
 

ZZR09

XLDnaute Occasionnel
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

  • verif.zip
    9.8 KB · Affichages: 32
  • verif.zip
    9.8 KB · Affichages: 31
  • verif.zip
    9.8 KB · Affichages: 30

Hervé

XLDnaute Barbatruc
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à ??? :eek:

salut
 

ZZR09

XLDnaute Occasionnel
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 :eek:
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+
 

Discussions similaires

Réponses
9
Affichages
166
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
319

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87