Bonjour,
Soit un fichier Tester_Fonction.xlsm vierge.
Dans Feuil1, je dispose d’un tableau (LISTOBJECT) nommé SEMAINE
De A1 à A8 - - > Num_Jour ,1, 2, 3, 4, 5, 6, 7
De B1 à B8 - - > Jour, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche
A1 et B1 sont les titres.
J’ai créé une fonction utilisateur qui ramène le nom du jour en fonction du N° de jour passé en paramètre :
En G5, je saisis donc : =jsem(5) et c’est bien VENDREDI qui s’affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Function Jsem(Jour) As String On Error Resume Next Jsem = Application.WorksheetFunction.VLookup(Jour, Range("Semaine"), 2, False) End Function
Si je modifie B6 (qui contient Vendredi) en saisissant Friday par exemple, rien en se passe. G5 reste à Vendredi. F9 et Maj+F9 n’ont aucun effet.
J’ai googleisé mon soucis et j’ai trouvé la solution : Application.volatile.
Je modifie ma fonction en :
Le comportement de la fonction est OK. Quand je change une valeur dans mon tableau SEMAINE, le contenu de G5 est bien modifié. Je suis content.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public Function Jsem(Jour) As String Application.volatile On Error Resume Next Jsem = Application.WorksheetFunction.VLookup(Jour, Range("Semaine"), 2, False) End Function
Là où ça pose problème, c’est quand, mon fichier tester_fonction étant ouvert, je crée par exemple un autre tableau (Fichier-Nouveau-Nouveau Classeur) et que j’en modifie une cellule.
Quand je reviens sur TESTER_FONCTION, G5 est vide. Pour ré afficher, je dois faire F9.
Le comportement est identique si j'ouvre un classeur déjà enregistré.
Pouvez-vous m’aider à résoudre ce soucis ?
Merci d'avance.
Partager