Fonction sans cesse appellé [Résolu]

ph412 45 Messages postés mercredi 10 décembre 2014Date d'inscription 11 décembre 2017 Dernière intervention - 12 févr. 2017 à 17:13 - Dernière réponse : ph412 45 Messages postés mercredi 10 décembre 2014Date d'inscription 11 décembre 2017 Dernière intervention
- 13 févr. 2017 à 10:07
Bonjour,

J'ai crée une fonction toute simple qui fonctionne.
Le problème c'est que cette fonction est appelé (entre 5 et 6 fois) sans aucune raison.
En mode débogage cela me fait perdre beaucoup de temps.

Mon module :
        Sheet1.Range("A11") = mois(Now)
Sheet1.Range("A12") = 1


La fonction est appelé également sur cette ligne ( ce qui est incompréhensible ! )
 Sheet1.Range("A12") = 1


la fonction
Function mois(Madate)

Madate = Month(Madate)
If Madate = 1 Then
mois = "Jan"
ElseIf Madate = 2 Then
mois = "Fev"

ElseIf Madate = 3 Then
mois = "Mars"
ElseIf Madate = 4 Then
mois = "Avr"
ElseIf Madate = 5 Then
mois = "Mai"
ElseIf Madate = 6 Then
mois = "Juin"
ElseIf Madate = 7 Then
mois = "Jui"
ElseIf Madate = 8 Then
mois = "Aou"
ElseIf Madate = 9 Then
mois = "Sep"
ElseIf Madate = 10 Then
mois = "Oct"
ElseIf Madate = 11 Then
mois = "Nov"
ElseIf Madate = 12 Then
mois = "Dec"
End If
End Function


Je souhaite appeler la fonction uniquement lorsque je l'appelle par son nom !!!
Quelqu'un à une explication ?
Merci par avance
Afficher la suite 

4 réponses

Répondre au sujet
Frenchie83 1724 Messages postés lundi 6 mai 2013Date d'inscription 14 décembre 2017 Dernière intervention - 13 févr. 2017 à 05:40
+1
Utile
1
Bonjour
A chaque modification du contenu d'une cellule, Excel refait les calculs, c'est le calcul automatique. Les fonctions personnalisées sont moins performantes en rapidité d'exécution que les fonctions Excel existantes.
Vous pouvez ajouter en début de la fonction un test qui vérifie si c'est bien la cellule concernée sur laquelle s'applique la fonction, si ce n'est pas le cas "exit function".
Maintenant, pourquoi vouloir créer une fonction qui existe déjà.
Utilisez celle-ci: =TEXTE(A1;"mmm"), avec la date en A1

Cdlt
Cette réponse vous a-t-elle aidé ?  
ph412 45 Messages postés mercredi 10 décembre 2014Date d'inscription 11 décembre 2017 Dernière intervention - 13 févr. 2017 à 10:05
Salut,
Je pense que c'est tout à fait cela, à l'avenir utiliserai cette astuce.
Merci !
Commenter la réponse de Frenchie83
yg_be 4139 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 13 févr. 2017 à 09:09
0
Utile
1
bonjour, cette fonction est appelée exclusivement à cette ligne de ton module, elle n'est pas présente dans une cellule?
peux-tu donner un vue plus large du contenu de ton module?
ph412 45 Messages postés mercredi 10 décembre 2014Date d'inscription 11 décembre 2017 Dernière intervention - 13 févr. 2017 à 10:07
Je crois qu'elle est appelé à chaque inscription sur al feuille.Je pense que Frenchie83 à raison, elle sera sans cesse appeler alors autant mettre un exit sub le plus tot possible dans la fonction.
Commenter la réponse de yg_be