Microsoft 365 Ma fonction VBA s'exécute avec toutes mes Macros

MACx

XLDnaute Occasionnel
Bonjour à vous,

Je viens vous demander de l'aide directement par ici en vous avouant ne pas avant cherché avant ni dans le forum ni ailleurs sur le web, tout simplement car je ne sais quoi ni où chercher.
Je rencontre un problème ( ce n'est pas un bug) avec une fonction créée (sur un fichier Excel qui doit rester tout le temps ouvert) qui s'exécute "aussi" lorsque j'exécute une macro, même si cette dernière se trouve sur un autre fichier...

Voici la fonction créée dans un module :

VB:
Option Explicit
Function SOMMECOULEUR(cellules As Range)
    Application.Volatile
    
    Dim total As Double
    Dim cellule As Range
    
    For Each cellule In cellules
        If Application.Caller.Interior.Color = cellule.Interior.Color Then
            total = total + cellule
        End If
    Next
    
    SOMMECOULEUR = total
End Function

Si je créée une macro X et que je la teste (avecF8), à un moment dans une de mes lignes d'exécution, je me retrouve dans le module où se trouve le code ci-dessus. Etant donné qu'il y a un "Loop" celle-ci tourne à l'infini (autant de fois que j'appuierai sur F8).
Mais si j'appuie sur F5, ma Macro X fini par s'exécuter "normalement"

Merci d'avance à la personne qui voudra bien et saura m'apporter une aide.

PS: Pour info, le code ci dessus m'aide à faire des sommes selon la couleur des cellules d'une feuille Excel.
 

Gégé-45550

XLDnaute Impliqué
Bonjour à vous,

Je viens vous demander de l'aide directement par ici en vous avouant ne pas avant cherché avant ni dans le forum ni ailleurs sur le web, tout simplement car je ne sais quoi ni où chercher.
Je rencontre un problème ( ce n'est pas un bug) avec une fonction créée (sur un fichier Excel qui doit rester tout le temps ouvert) qui s'exécute "aussi" lorsque j'exécute une macro, même si cette dernière se trouve sur un autre fichier...

Voici la fonction créée dans un module :

VB:
Option Explicit
Function SOMMECOULEUR(cellules As Range)
    Application.Volatile
   
    Dim total As Double
    Dim cellule As Range
   
    For Each cellule In cellules
        If Application.Caller.Interior.Color = cellule.Interior.Color Then
            total = total + cellule
        End If
    Next
   
    SOMMECOULEUR = total
End Function

Si je créée une macro X et que je la teste (avecF8), à un moment dans une de mes lignes d'exécution, je me retrouve dans le module où se trouve le code ci-dessus. Etant donné qu'il y a un "Loop" celle-ci tourne à l'infini (autant de fois que j'appuierai sur F8).
Mais si j'appuie sur F5, ma Macro X fini par s'exécuter "normalement"

Merci d'avance à la personne qui voudra bien et saura m'apporter une aide.

PS: Pour info, le code ci dessus m'aide à faire des sommes selon la couleur des cellules d'une feuille Excel.
Bonjour,
il manque un info :
- comment (par quelle macro) et à quel moment cette fonction est-elle appelée ?
Cordialement,
 

Discussions similaires

Réponses
5
Affichages
185
Réponses
7
Affichages
193

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
306 164
Messages
2 033 643
Membres
227 000
dernier inscrit
fabiop