Tester une function

Bonjour,

je commence a apprendre le langage VBA petit à petit.

Jusqu'ici tout allait bien, je comprenais le principe de développement, mais je me heurte à un problème, je n'aarive pas a tester certaines fonctions sur le logiciel. je sais les écrire mais impossible pour moi de les tester.. j'ai chercher pendant des heures, mais n'y arrive pas.

Quelqu'un pourrait il m'aider?

ici par exemple, on me demande de créer une fonction Nb_jours permettant de calculer combien de jours ce sont écoulés ou combien de jours restent avant une date précise tapée dans une cellule. Si la date saisie est la date du jour, il faudra afficher "c'est aujourd'hui !!!".

Comme ceci

date

je sais que le code a écrire est celui ci

code

mais je ne sais pas comment passer du code au test.

lorsque je clique sur le bouton "play" pour exécuter mon code (comme je le faisais habituellement) on me demande de creer une macro, je lui donne donc le nom test et là, une nouvelle fenêtre s'ouvre

ecran sub

et là je ne sais plus où aller ni quoi faire pour tester... et arriver ce qui m'est demandé dans la première image..

je bloque vraiment

Pouvez vous m'aider?

merci a tous.

Seb

Bonjour,

tu as écrit une fonction qui peut être utilisée à partir d'excel et à partir de VBA

à partir de VBA tu peux tester avec cette procédure

Sub test()
MsgBox nb_jours(DateValue("1/1/2018"))
End Sub

à partir d'excel, pour que cela fonctionne, il faut que tu mettes ton code dans un module indépendant d'une feuille (fais insérer module) et non dans un module lié à une feuille. Tu pourras ensuite tester ta fonction comme n'importe quelle autre fonction excel. Si par exemple tu mets une date en A1, tu peux mettre en B1 la formule suivante

=nb_jours(A1)

Bonsoir,

je ne sais si j'ai compris, mais une Function n'est pas une Sub, si vous voulez faire un test de votre foncton alors il faut faire une Sub qui utilise cette fonction :

Sub Test
Dim Nb_Jour as integer
NB_Jour = nbjours("01/01/2018")
MsgBox(NB_Jour)
End Sub

reste à voir dans quel format il faut indiquer la date envoyée à la fonction...

Vous pouvez faire plus simple :

Sub Test
MsgBox(nbjours("01/01/2018"))
End Sub

Si j'ai bien compris et bien "écrit" le code de test...

@ bientôt

LouReeD

Bonsoir Acide !

Attention à "_" qui n'existe pas...

Bonne soirée @ vous, et bravo pour la rapidité, en plus vous parlez de l'utilisation de la fonction sous "Excel" !

Il faut vraiment que je me mette à tapoter plus vite sur mon clavier !

@ bientôt

LouReeD

Bonsoir LouReed,

tu as raison c'est nbjours sur la photo, mais c'est nb_jours dans le texte de la demande. C'est donc un point d'attention pour Sebb34.

bonne nuit

Je vous renvoie la réponse !

C'est également à moi de bien lire les messages !

A vouloir répondre vite, il m'arrive souvent de lire en diagonale les demandes !

@ bientôt

LouReeD

Bonjour à tous,

merci beaucoup pour votre aide, elle m'a été très précieuse!

Du coup j'ai pu résoudre mon problème.

Je ferme le topic!

Bonjour,

et merci à vous pour les remerciements !

Vous avez vu ? On est patient !!!

@ bientôt

LouReeD

Bonjour,

et merci à vous pour les remerciements !

Vous avez vu ? On est patient !!!

@ bientôt

LouReeD

Et très réactif!

Je sais, je sais ...

@ bientôt

LouReeD

Je sais, je sais ...

@ bientôt

LouReeD

Avant de fermer le sujet, une question de taraude.

Je n'arrive pas à voir la différence entre sub et function. On dit que la différence est que function renvoie toujours un résultat. Mais dans mon cas le sub aussi renvoie un résultat dans ma fenêtre. Alors où est la différence?

Je n'ai pas essayé mais si vous faites :

Sub test()
MsgBox nb_jours(DateValue("1/1/2018"))
End Sub

avec un

Sub nb_jours()

en lieu et place de

Function nb_jours()

Alors vous aurez une erreur car la sub ne renvoie pas de valeur.

Et une fonction VBA peut être "appelée" directement dans une feuille Excel :

=nb_jours(A1)

formule dans une cellule (b2 par exemple) avec une date en A1

Une sub ne marchera pas.

Merci à acide pour ses explications sur les messages précédents !

@ bientôt

LouReeD

Rechercher des sujets similaires à "tester function"