Fonction sans cesse appellé

Résolu/Fermé
ph412 Messages postés 45 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 11 décembre 2017 - Modifié par ph412 le 12/02/2017 à 17:16
ph412 Messages postés 45 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 11 décembre 2017 - 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

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
13 févr. 2017 à 05:40
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
1
ph412 Messages postés 45 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 11 décembre 2017
13 févr. 2017 à 10:05
Salut,
Je pense que c'est tout à fait cela, à l'avenir utiliserai cette astuce.
Merci !
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
13 févr. 2017 à 09:09
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?
0
ph412 Messages postés 45 Date d'inscription mercredi 10 décembre 2014 Statut Membre Dernière intervention 11 décembre 2017
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.
0