VBA , vérifier la présence d'une valeur dans une plage de cellules

Bonjour chers tous, je suis nouveau sur ce forum et je voudrais avant tout dire merci pour cette belle initiatives que vous nous donnez d'améliorer nos connaissances en EXCEL.

Depuis 2 jours je bute sur un code vba qui devrait me permettre de vérifier la présence d’une valeur dans une plage de cellule. SI cette valeur existe ce code doit m'afficher un message de confirmation et aussi la cellule dans laquelle elle se trouve (voir fichier excel en PJ a la fin du sujet )

la valeur cherchée est une combinaison entre : un matricule, un mois et une année

Je me sers d'un formulaire pour préciser chacune de ces 3 valeurs et le bouton "RESULTAT" est censé me dire si cette combinaison existe dans ma plage de cellule du fichier excel (voir fichier excel en PJ).

Vous pouvez voir le code derrière le bouton "RESULTAT" mais je vous le copie ici

Private Sub CommandButton3_Click()

Dim cellulecherchee As Range, ligne As Integer, col As Integer, valeur_cherchee As String

valeur_cherchee = ComboBox_matricule & ComboBox_mois_paie & ComboBox_annee_paie '& ComboBox_annee_paie 'enregistrement dont on veut vérifier la présence dans le livre

cellulecherchee = Feuil7.Range("E5:E50").Find(what:=valeur_cherchee, lookat:=xlWhole)

If cellulecherchee Is Nothing Then

MsgBox ("pas trouvé")

Else

ligne = cellulecherchee.Row

col = cellulecherchee.Column

MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & col & " , cellulecherchee.Address")

End If

End Sub

180presence-valeur.xlsm (29.81 Ko)

Bonjour matsniper & bienvenue,

à tester,

Private Sub RESULTAT_Click()
Dim cellulecherchee As Range, ligne As Integer, col As Integer, valeur_cherchee As String

valeur_cherchee = ComboBox_matricule & ComboBox_mois_paie & ComboBox_annee_paie '& ComboBox_annee_paie 'enregistrement dont on veut vérifier la présence dans le livre

Set cellulecherchee = Range(Feuil7.Range("E5:E50").Find(what:=valeur_cherchee, lookat:=xlWhole).Address)

If cellulecherchee Is Nothing Then
MsgBox ("pas trouvé")
Else
ligne = cellulecherchee.Row
col = cellulecherchee.Column
MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & col & " , cellulecherchee.Address")
End If
End Sub

Salut i20100,

j'ai testé le code que tu m'as suggéré mais j'ai toujours le même message d'erreur concernant "cellulecherchee". voici une capture d’écran de l'erreur.

erreur

merci de t’être penché sur mon problème. Je suis toujours preneur pour d'autres propositions.

Bonjour,

essaie ainsi :

Private Sub RESULTAT_Click()
Dim cellulecherchee As Range, ligne As Long, col As Long, valeur_cherchee As String
valeur_cherchee = ComboBox_matricule & ComboBox_mois_paie & ComboBox_annee_paie
    Set cellulecherchee = Feuil7.Range("E5:E50").Find(what:=valeur_cherchee, LookIn:=xlValues, lookat:=xlWhole)
    If cellulecherchee Is Nothing Then
        MsgBox ("pas trouv?")
    Else
        ligne = cellulecherchee.Row
        col = cellulecherchee.Column
        MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & col & " , " & cellulecherchee.Address)
    End If
End Sub

Merci à Jean-Eric,

Le code que tu as donné marche à merveille. Cela va me permettre de progresser énormément dans mon projet

Vous êtes formidable les gars.

trouve

Merci matsniper pour ce retour, au plaisir!

si le problème est résolu, s.v.p. clôture le fil, par un clic sur le bouton

resolu
Rechercher des sujets similaires à "vba verifier presence valeur plage"