J'ai créé dans VBA la fonction toute simple suivante dans le but de modifier le contenu d'une cellule dans une feuille Excel en fonction d'un code (Obj) donné par une autre cellule sous forme d'une chaîne de caractère (ex "§10 2 102") et d'une valeur (Ga) donné par une troisième cellule :
Cette fonction répond parfaitement à mon attente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Function Car(Obj As String, Ga As Byte) As Byte Dim Go As Byte If Obj = "" Then exit Function Go = Split(Obj)(1) If Go < Ga Then Car = 1 Else Car = 2 End If End Function
Le problème, c'est qu'elle démarre toute seule lorsqu'une procédure VBA modifie le contenu d'une autre cellule de ma feuille qui n'a pourtant rien à voir avec les trois cellules précédentes.
Je précise que ma fonction est dans le même projet VBA, mais dans un module différent de la procédure dont je viens de parler.
Lorsque la fonction est appelée, la pile des appels me donne l'info <Code non basic> comme lors du déclenchement d'une procédure évènementielle lorsque l'on modifie un contrôle dans un formulaire "Userform" par une procédure VBA.
Je précise encore que j'ai bien vérifié que la suite de caractères "CGr" n'apparaît nulle part dans mon code !
Merci à ceux qui pourraient éclairer ma lanterne ...
Partager