Paramètre d'une fonction Range OU s

L

LUDWIG

Guest
Bonjour le forum. J'espère que les pros sont en ligne, en se jour férié ! B)

Voilà mon souhait :
Je créée une petite fonction de recherche à laquelle je passe 2 paramètres : le texte recherché (RECHERCHE) et la zone de recherche (ZONE).

Pour ce 2ème paramètre, je voudrais pouvoir lui envoyer soit une plage de cellule (RANGE), soit le nom d'une feuille (STRING).
Code:
[u]Si l'objet est RANGE, la recherche serait :[/u]
SEARCH = ZONE.Find(what:=RECHERCHE).Address
[u]Si l'objet est STRING, la recherche serait :[/u]
SEARCH = Worksheets(ZONE).Cells.Find(what:=RECHERCHE).Address

Voilà mon soucis:
Le type d'objet est déclaré dans la fonction, c'est soit RANGE (ou variant), soit STRING :
Code:
Public Function SEARCH(ByVal RECHERCHE As String, ByVal ZONE As Range [i][size=2]ou[/size][/i]String)
Je n'arrive donc pas à utiliser en même temps une plage de cellule ou une chaîne de caractère pour que cette fonction ... fonctionne !

Quelqu'un a une idée de la façon dont je pourrais procéder ? Merci d'avance...

¤¤¤ Lud ¤¤¤
 

myDearFriend!

XLDnaute Barbatruc
Bonjour LUDWIG,

Tu peux essayer comme ça :
Public Function SEARCH(ByVal RECHERCHE As String, ByVal ZONE As Variant) As String
      If TypeName(ZONE) = 'Range' Then
            SEARCH = ZONE.Find(what:=RECHERCHE).Address
      Else
            SEARCH = Worksheets(ZONE).Cells.Find(what:=RECHERCHE).Address
      End If
End Function
Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
300 890
Messages
1 988 170
Membres
210 094
dernier inscrit
Ratahiry