VBA overload de function

Résolu
birdyz Messages postés 42 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 4 septembre 2006 - 4 sept. 2006 à 14:39
birdyz Messages postés 42 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 4 septembre 2006 - 4 sept. 2006 à 19:39
Bonjour à tous

Tous d'abord, je ne suis pas sur d'être au bon endroit car ma question porte sur VBA sous Excel et non VB, mais j'ai pas trouvé de site CS sur VBA.
Autre chose, je suis une quiche en VBA comme en VB.
Et maintenant ma question. Sous delphi, je peux déclarer 2 fonctions (ou plus) portant le même nom, mais acceptant des arguments en nombre ou type différent. Pour cela, on utilise le mot clé Overload.
Est il possible de faire la même chose en VBA. En effet, j'ai besoin de 2 fonctions similaires, mais une devra travailler avec un argument de type Range, et l'autre de type String. Je souhaite conserver le même nom de fonction afin de ne pas perturber l'utilisateur.

Merci d'avance
Birdyz

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 sept. 2006 à 14:56
Par contre tu peux essayer de mettre ça dans la même fonction, détectant le type dargument que tuu lui passe.

Public Sub TaRoutine(TonParametre As Variant) 

If VarType(TonParametre) = vbString Then 
    'Traitement à faire pour une string

    ...................................
Else 
    'Traitement à faire pour une range

    ....................................
End If

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 sept. 2006 à 14:42
A ma connaissance NON c'est pas possible en VBA, ni en VB6

je crois que c'est possible en vb.net, mais ça ne te concerne pas puisque tu es sous Excel.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
birdyz Messages postés 42 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 4 septembre 2006
4 sept. 2006 à 15:12
C'est bien ce que je craignait :-(.
Je pense que je vais devoir faire 2 fonctions.
Sauf si ...............il est possible de déclarer ma fonction avec un argument de type variant, et ensuite tester si mon argument variant contient un type Range ou un type String. Mais je sais pas plus comment faire.
0
birdyz Messages postés 42 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 4 septembre 2006
4 sept. 2006 à 15:13
oups, c'est ca de faire plusieurs chose en même temps. Merci de l'astuce, je teste ca ce soir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
birdyz Messages postés 42 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 4 septembre 2006
4 sept. 2006 à 19:39
Merci beaucoup casy, ca fonctionne nickel. C'est moi propre que de l'overload, mais l'essentiel n'est pas la.

Birdyz
0
Rejoignez-nous