[VBA]Rechercher si un matricule existe déjà dans la colonne de la feuilleX

Skynee

XLDnaute Nouveau
Bonjour,
Après plusieurs recherches sur différents forums, je m'en remet à vous car je ne trouve pas de solutions.
Dans le cadre d'un projet, j'aimerais vérifier que lorsque je remplis ma text box et que je l'ajoute dans mon tableau, faire un test pour voir si ce matricule n'existe pas déjà dans ma colonne. Si il existe déjà afficher une msgBox comme quoi il existe sinon continuer la suite de mon code.

Avez-vous une idée?
Merci d'avance.
 

Chris24

XLDnaute Impliqué
Bonjour

Un morceau de code à adapter à ton classeur

VB:
Private Sub Client_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
' cherche si la valeur entrée existe déja dans la liste

NbLigC = F4.[A65000].End(xlUp).Row

MatTest = Me.Client
 For Each c In Range("Base!A2:A" & NbLigC)
     If c Like MatTest Then
       Exit Sub
     End If
 Next
msg = MatTest & vbCrLf & vbCrLf & _
        " N'est pas dans la liste des Clients !" & vbCrLf & vbCrLf & _
               "       Voulez-vous l'ajouter"    ' Définit le message.
Style = vbYesNo + vbQuestion + vbDefaultButton1    ' Définit les boutons.
Title = "Saisie Client "    ' Définit le titre.
              
 response = MsgBox(msg, Style, Title)
    If response = vbNo Then    ' L'utilisateur a choisi non.
        Client = ""
        Exit Sub
    End If
'La suite du code si le Nom n'est pas dans la base

Cordialement
 

job75

XLDnaute Barbatruc
Bonjour Skynee, bienvenue sur XLD, Chris24,

Puisque vous ne joignez pas de fichier voyez celui-ci et cette macro :
VB:
Private Sub CommandButton1_Click()
If TextBox1 = "" Then Exit Sub
Dim i As Variant
With [A1].CurrentRegion.Columns(1) 'à adapter
    i = Application.Match(TextBox1, .Offset(1), 0)
    If IsNumeric(i) Then
        MsgBox "'" & TextBox1 & "' est déjà enregistré..."
        TextBox1.Activate 'TextBox dans la feuille de calcul
        'TextBox1.SetFocus 'TextBox dans un UserForm
        TextBox1.SelStart = 0
        TextBox1.SelLength = Len(TextBox1)
    Else
        .Cells(.Rows.Count + 1) = TextBox1
        TextBox1 = "" 'RAZ
    End If
End With
End Sub
 

Pièces jointes

  • TextBox(1).xlsm
    26.7 KB · Affichages: 41

Discussions similaires

Réponses
5
Affichages
272
Réponses
12
Affichages
382

Statistiques des forums

Discussions
315 094
Messages
2 116 153
Membres
112 670
dernier inscrit
Flow87