VBA - fonction ...

Résolu/Fermé
Tehani_t Messages postés 240 Date d'inscription mercredi 14 juillet 2010 Statut Membre Dernière intervention 20 décembre 2011 - 16 août 2010 à 22:52
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 - 25 août 2010 à 23:40
Bonjour,

J'ai une fonction :

Function calcul_avancement(ByVal date_av_max As Variant, ByVal duree_pos As Variant, ByVal test_pos As Variant, ByVal jj As Variant, ByVal mm As Variant, ByVal aa As Variant) As Variant

Dim an_res As Variant
Dim an_ent As Variant
Dim an_dec As Variant
Dim mois_res As Variant
Dim mois_ent As Variant
Dim mois_dec As Variant
Dim jour_res As Variant
Dim jour_ent As Variant
Dim jour_dec As Variant
Dim jour As Variant
Dim mois As Variant
Dim annee As Variant
Dim date_mem As Variant
Dim annee_mem As Variant
Dim jour_mem As Variant
Dim mois_mem As Variant


If duree_pos = "" Then
calcul_avancement = date_av_max
end if

...
End Function

Je l'appelle à partir d'une cellule A1. J'aimerais que : lorsque duree_pos n'est pas renseigné, la fonction renvoie date_av_max, mais rien ne s'affiche, pourquoi ??

Merci !!

7 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
16 août 2010 à 23:37
Bonjour,

Il serait préférable de passer « duree_pos » en tant que paramètre optionnel et de tester l'absence de passage du paramètre :

Function calcul_avancement(ByVal date_av_max As Variant, ByVal test_pos As Variant, ByVal jj As Variant, ByVal mm As Variant, ByVal aa As Variant, Optional ByVal duree_pos As Variant) As Variant

Dim an_res As Variant
Dim an_ent As Variant
Dim an_dec As Variant
Dim mois_res As Variant
Dim mois_ent As Variant
Dim mois_dec As Variant
Dim jour_res As Variant
Dim jour_ent As Variant
Dim jour_dec As Variant
Dim jour As Variant
Dim mois As Variant
Dim annee As Variant
Dim date_mem As Variant
Dim annee_mem As Variant
Dim jour_mem As Variant
Dim mois_mem As Variant


If IsMissing(duree_pos) Then calcul_avancement = date_av_max

End Function

Cordialement
Patrice

0
Tehani_t Messages postés 240 Date d'inscription mercredi 14 juillet 2010 Statut Membre Dernière intervention 20 décembre 2011 21
17 août 2010 à 00:26
Ca ne marche pas !!! :-(
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
17 août 2010 à 00:31
Qu'est-ce qui ne marche pas ?

Pour moi ça fonctionne, cela vient peut-être de la suite du code...
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
17 août 2010 à 00:37
PS :Pour que la fonction puisse être utilisée, il faut enregistrer le fichier modifié
0
Tehani_t Messages postés 240 Date d'inscription mercredi 14 juillet 2010 Statut Membre Dernière intervention 20 décembre 2011 21
17 août 2010 à 00:37
ca y est j'ai trouvé merci !!
0

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

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
17 août 2010 à 00:40
Pour ceux qui consulteront ce poste, peux tu préciser ce qui posait problème

et mettre le poste en résolu
0
Tehani_t Messages postés 240 Date d'inscription mercredi 14 juillet 2010 Statut Membre Dernière intervention 20 décembre 2011 21
17 août 2010 à 01:19
c'est juste le format de la cellule qui n'allait pas !
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 951
Modifié par Mytå le 25/08/2010 à 23:40
Salut le forum

Tehani, merci de faire passer ta ficelle en [Résolu]

Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0