Rechercher une valeur dans une feuille

Bonjour, j'aimerais pouvoir rechercher une valeur dans ma feuille excel afin d'éviter de saisir des doublons.

Mon code sert à saisir le nom et prenom d'une liste finie d'employé (j'aimerais ne pas avoir deux fois le même employé) et est le suivant :

Sub SaisirEmployé()

Dim np As Integer

Dim DC As Integer

Dim NomT As String

DC = 0

i = 0

np = InputBox("Saisir le nombre d'employés concernés", "Identité employés")

For i = 1 To np Step 1

DC = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row + 1 'Selectionne la première cellule vide de A

NomT = InputBox("Saisir l'identité de l'employé", "identité employés", "(nom entier,en majuscule et sans acccents)")

If cells.Find("NomT")<-- C'EST LA QUE JE COINCE.

Worksheets("Feuil1").Cells(DC, 1) = NomT

Next

End Sub

J'aimerais en français obtenir un truck du genre " si NomT est deja présent dans mon tableau sauter "Worksheets("Feuil1").Cells(DC, 1) = NomT" et passer à la suite !

Merci d'avance !!

Bonjour,

Pourquoi ne pas utiliser simplement la validation de données ?

Données > Outils de données > Validation de données

Autoriser : Personnalisé

Formule : =NB.SI($A:$A;$A4)<=1

A+

Pourrais-tu expliquer un peu plus ?, je suis un novice en EXCEL...

Avec un exemple peut-être ?

A+

12nathanb.zip (6.99 Ko)

Merci de ta rapidité mais le problème est que la liste de nom est saisie a travers l'interface InputBox VBA , donc le filtre que tu propose ne marche pas...

Bien, alors essaie comme cela

Sub SaisirEmployé()
Dim np As Integer, DC As Integer, i As Integer
Dim NomT As String
    np = InputBox("Saisir le nombre d'employés concernés", "Identité employés")
    With Worksheets("Feuil1")
        For i = 1 To np Step 1
            DC = .Cells(Rows.Count, 1).End(xlUp).Row + 1 'Selectionne la première cellule vide de A
            NomT = InputBox("Saisir l'identité de l'employé", "identité employés", "(nom entier,en majuscule et sans acccents)")
            If Application.CountIf(.Range("A1:A" & DC), NomT) = 0 Then
                .Cells(DC, 1) = NomT
            Else
                MsgBox "Le nom " & NomT & " a déjà été saisi."
            End If
        Next
    End With
End Sub

A+

Cela fonctionnes très bien bravo !

pourrais tu m'expliquer quand même ton raisonnement ?

Merci

Par rapport à ton code, la seule différence notable est l'instruction

If Application.CountIf(.Range("A1:A" & DC), NomT) = 0 Then

qui se traduit par : si NomT n'est pas encore inscrit dans la plage des cellules renseignées de la colonne A, alors ...

Est-ce limpide ?

A+

Rechercher des sujets similaires à "rechercher valeur feuille"