VBA Renvoyer erreur si valeur saisie dans formulaire déja existante

  • Initiateur de la discussion Initiateur de la discussion Johan
  • 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 !

Johan

XLDnaute Occasionnel
Bonjour à tous!


J'aimerais renvoyer automatiquement un message d'erreur si la valeur saisie dans mon textbox "ID" de mon userform existe déja dans la colonne A de ma feuille 1 lorsque je valide le formulaire, dans le but d'éviter les erreurs.

Dans le fichier prototype ci-joint, les différents champs du formulaire viennent renseigner la feuille 2.


PS : Ne sachant pas encore trop comment m'y prendre à l'heure actuelle sur mon fichier d'origine, pourriez-vous également mettre en apostrophe dans le code le cas inverse, c'est à dire si erreur si ce n'est pas une valeur existante dans ma colonne A ?

Un grand merci d'avance, en espérant avoir été suffisamment clair.

A votre disposition si besoin.
 

Pièces jointes

Re : VBA Renvoyer erreur si valeur saisie dans formulaire déja existante

Bonjour,

C'est un peu comme dans cette discussion:

https://www.excel-downloads.com/thr...ndre-dans-feuil2-valeur-equivalente.20005409/

on cherche la valeur sur une plage

Code:
Private Sub ID_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 Dim DerLig As Long
 With Sheets("Feuil1")
 DerLig = .Range("A" & Rows.Count).End(xlUp).Row
 Set r = .Range("A14:A" & DerLig).Find(ID.Value)
 If r Is Nothing Then
    MsgBox "L'ID n'existe pas"
 Else
    MsgBox "L'ID existe"
    ID = ""
    Cancel = True
 End If
 End With
End Sub

A+
 
Re : VBA Renvoyer erreur si valeur saisie dans formulaire déja existante

Re!

Le lien vers la discussion est un sujet dont je suis l'auteur... 😉

Du coup j'ai modifié votre code à ma façon et ça marche exactement comme je l'ai souhaité.

Public Sub ID_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim DerLig As Long
With Sheets("Feuil1")
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
Set r = .Range("A14:A" & DerLig).Find(ID.Value)
If Not r Is Nothing Then
MsgBox "ID DEJA EXISTANT"

Cancel = True
End If
End With
End Sub

Private Sub VALIDER_Click()

Feuil2.Range("A1").Value = ID.Value
Feuil2.Range("B1").Value = test1.Value
Feuil2.Range("C1").Value = test2.Value

Unload UserForm1

End Sub


Et si je change d'avis je n'ai qu'à enlever le "not" de "If not r is Nothing" et modifier le msgbox.

Merci à vous Paf, problème résolu
 
- 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

Discussions similaires

Réponses
3
Affichages
298
Retour