Bonjour à tous,
j'ai un petit soucis avec une fonction de recherche de valeur dans une plage.
Cette fonction doit me renvoyer True si elle trouve ma valeur recherchée dans une plage définie et False si elle ne la trouve pas.
Quand je teste cette fonction avec le code suivant:
la fonction me retourne systématiquement un False alors que je me sers bien d'une valeur de la plage pour effectuer ma recherche.
Cette fonction marche quand je recherche un String, elle me retourne bien un True, par contre avec un Double elle ne fonctionne pas.
Malgré les recherches que j'ai faites je n'arrive pas à trouver l'explication à ce problème.
Comme je compte utiliser cette fonction dans un code où il faut rechercher un double, j'ai vraiment besoin de la faire fonctionner.
Si quelqu'un pouvait m'éclairer je lui en serai très reconnaissant.
j'ai un petit soucis avec une fonction de recherche de valeur dans une plage.
Cette fonction doit me renvoyer True si elle trouve ma valeur recherchée dans une plage définie et False si elle ne la trouve pas.
Code:
Public Function controleMontant(montantDon As Double) As Boolean
controleMontant = False
With Sheets(2)
i = .Columns(3).Find("*", , , , xlByRows, xlPrevious).Row
Set Rg = .Range(Cells(4, 3), Cells(i, 3)).Find(montantDon, LookIn:=xlValues, lookat:=xlWhole)
If Not Rg Is Nothing Then controleMontant = True
Set Rg = Nothing
End With
End Function
Quand je teste cette fonction avec le code suivant:
Code:
Sub test()
MsgBox controleMontant(CDbl(Sheets(2).Cells(5, 3).Value))
End Sub
la fonction me retourne systématiquement un False alors que je me sers bien d'une valeur de la plage pour effectuer ma recherche.
Cette fonction marche quand je recherche un String, elle me retourne bien un True, par contre avec un Double elle ne fonctionne pas.
Malgré les recherches que j'ai faites je n'arrive pas à trouver l'explication à ce problème.
Comme je compte utiliser cette fonction dans un code où il faut rechercher un double, j'ai vraiment besoin de la faire fonctionner.
Si quelqu'un pouvait m'éclairer je lui en serai très reconnaissant.