Fonction personnalisée de recherche

Bonjour,

Mon problème est que je fais un EQUIV dans un FEUILLET et une PLAGE de recherche et que je ne trouve pas ma valeur. Hors, par CTRL+F, cela marche.

J’aimerai faire une FONCTION PERSONNALISEE pour effectuer une recherche avec les éléments suivants :

RECHVALEUR = Valeur recherchée,

RECHSENS = Recherche par le bas ou par le haut ,

RECHFEUIL = Feuillet de recherche,

RECHPLAGE = Plage de recherche,

RESULTAT = Adresse trouvée suite à la recherche (plus tard – choix avec Ligne ou Colonne).

Est-ce possible par Fonction personnalisée (par Sub, j’y arrive très bien) ?

Je donne une structure ci-dessous qui tient du brouillon (je suis autodidacte en VB fortement aidé par Internet).

Cordialement.

Public Function RECHVAL(VALRECH As String, RECHSENS As String, RECHFEUIL As String, RECHPLAGE As String)

Dim FEUILDEP As String

Dim SENS As String

On Error GoTo ERR_RECHVAL

'--- SENS RECHERCHE ---

If RECHSENS = "D" Then

SENS = "xlNext"

Else

SENS = "xlPrevious"

End If

'--- RECHERCHE DANS LE FEUILLET DE RECHERCHE ET LA PLAGE DE RECHERCHE SPECIFIES ---

Sheets(RECHFEUIL).Select

Range(RECHPLAGE).Select

If SENS = "D" Then

Selection.Find(what:=RECHVALEUR, After:=ActiveCell, LookIn:=xlValues, LookAt _

:=xlPart, SearchOrder:=xlByRows, searchdirection:= xlNext, MatchCase:= _

False, SearchFormat:=False).Activate

Else

Selection.Find(what:=RECHVALEUR, After:=ActiveCell, LookIn:=xlValues, LookAt _

:=xlPart, SearchOrder:=xlByRows, searchdirection:=xlPrevious, MatchCase:= _

False, SearchFormat:=False).Activate

End If

If IsNothing then

RECHVAL = "???"

Exit Function

End If

'--- RETOUR DANS LE FEUILLET DE DEPART OU LA FONCTION EST SOLLICITEE ---

Sheets(FEUILDEP).Activate

RECHVAL = ActiveSheet.Name & "!" & ActiveCell.Address

ERR_RECHVAL:

If Err <> 0 Then

RECHVAL = "???"

Err.Clear

Exit Function

End If

End Function

Bonjour,

Une proposition ...

Cordialement.

7jorky.xlsm (21.60 Ko)

Bonsoir,

Merci à Gyrus pour ta réponse. Je vais essayer et ferai un retour.

Cordialement.

Bonsoir,

Comme convenu, je fais un retour à Gyrus.

Cela marche nickel. J'ai juste changé "lookat=xlWhole" par "lookat=xlPart" pour une recherche de la valeur recherchée contenue dans la cellule.

Bonne soirée.

Merci pour le retour ...

Rechercher des sujets similaires à "fonction personnalisee recherche"