VBA overload de function

Résolu
Signaler
Messages postés
42
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 septembre 2006
-
Messages postés
42
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 septembre 2006
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
42
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 septembre 2006

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.
Messages postés
42
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 septembre 2006

oups, c'est ca de faire plusieurs chose en même temps. Merci de l'astuce, je teste ca ce soir.
Messages postés
42
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
4 septembre 2006

Merci beaucoup casy, ca fonctionne nickel. C'est moi propre que de l'overload, mais l'essentiel n'est pas la.

Birdyz