Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

  • Test_ValeurFormulaireExistante.xlsm
    21.3 KB · Affichages: 50

Paf

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

Johan

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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…