Microsoft 365 formule Compteur qui s'incrémente au lancement de Macro

  • Initiateur de la discussion Initiateur de la discussion looky62
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

looky62

XLDnaute Occasionnel
Hello la Teams,

Qd je lance ma macro, j'ai un compteur de colonne qui change hors Macro cad sur une colonne j'ai :

= NB.SI(Source!G:G;"O") il se décale d'une colonne et passe en = NB.SI(Source!H:H;"O") et à chaque fois que je relance la macro ça s'incrémente

Quel est la parade, meme avec des $ ça ne marche pas

Merci de votre éclairage
 
Solution
Bonjour,

L'erreur vient du fait que le retour doit se faire avec le nom de la fonction.
Donc ici, cela aurait du être "Compter2=..." et non "Compter=..."
1667818417576.png

Pour rendre l'exécution automatique comme n'importe quelle fonction XL, il faut rajouter Application.volatile au début.

Voir PJ.
J'ai renommé les fonctions pour être plus "explicite"

VB:
Function CompterOui()
    Application.Volatile
    CompterOui = Application.CountIf(Sheets("Source").Range("G:G"), "O")
End Function
Function CompterNon()
    Application.Volatile
    CompterNon = Application.CountIf(Sheets("Source").Range("G:G"), "N")
End Function
Vous avez lu mon post #14 ? Ne dites pas Oui, ça m'étonnerait.
Dans une fonction, le retour doit être fait avec le nom de la fonction :
Ca, c'est FAUX :
VB:
Function Compter2O()
    Application.Volatile
    CompterOui = Application.CountIf(Sheets("Resultat").Range("G:G"), "O")
End Function
Le retour doit se faire par Compter2O = ....
Ca, c'est BON :
Code:
Function Compter2O()
    Application.Volatile
    Compter2O = Application.CountIf(Sheets("Resultat").Range("G:G"), "O")
End Function
Le retour doit se faire avec le même nom que la fonction.
D'ailleurs c'est écrit dans mon tuto :
Plus déstabilisant : le résultat de la fonction est dans le nom de la fonction. ( mais on s'y fait ! ) [Ligne B171]
 

Pièces jointes

Vous avez lu mon post #14 ? Ne dites pas Oui, ça m'étonnerait.
Dans une fonction, le retour doit être fait avec le nom de la fonction :
Ca, c'est FAUX :
VB:
Function Compter2O()
    Application.Volatile
    CompterOui = Application.CountIf(Sheets("Resultat").Range("G:G"), "O")
End Function
Le retour doit se faire par Compter2O = ....
Ca, c'est BON :
Code:
Function Compter2O()
    Application.Volatile
    Compter2O = Application.CountIf(Sheets("Resultat").Range("G:G"), "O")
End Function
Le retour doit se faire avec le même nom que la fonction.
D'ailleurs c'est écrit dans mon tuto :
Effectivement Au temps pour moi dslé, oui excusez moi j'ai mal lu la subtilité , au moins je saurais pr la prochaine fois!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour