Bonjour à tous,
Je sollicite l'aide collective pour un problème en VBA que je n'arrive à résoudre.
J'ai développé une macro qui écrit des données dans plusieurs onglets, et qui procède à des mises en forme conditionnelles pour certaines cellules. Ces cellules doivent prendre le formatage (couleur) approprié en fonction de la valeur de la cellule :
- 0.3 > Valeur : Rouge
- 0.3<Valeur<0.4 : Jaune
- Valeur>0.4 : Vert
Jusque là, rien de très complexe.
J'ai donc une fonction qui permet d'effectuer la mise en forme conditionnelle, prenant en paramètre le Range de la cellule cible. Cette fonction est appelée lors de l'exécution de la macro, et fonctionne parfaitement, en tout cas en apparence.
En effet, à l'issue de l'exécution de la macro, plusieurs cellules auront la mise en forme appliquée, ainsi qu'une valeur générée. La mise en forme pour la valeur générée est correcte. MAIS, si l'on modifie la valeur de la cellule, la mise en forme ne s'ajuste plus selon les règles qu'elle est censée suivre. Décrit comme cela, cela ressemble à un problème dans les règles générées. Pourtant, si je contrôle les règles manuellement via l'interface graphique Excel pour chaque cellule cible, elles sont systématiquement correctes.
Encore plus fort, si j'édite (via l'interface graphique) une de ces règles générée automatiquement par la macro, sans la modifier, et juste en appuyant sur OK. Cette fois, elle va s'appliquer de façon nominale. Comme si il y avait un problème de "rafraîchissement"...
J'ai donc tenté d'isoler uniquement la fonction liée à la génération de la mise en forme conditionnelle dans un fichier test (qui est en pièce jointe). Mais, lorsque j'exécute ce fichier test, tout marche de façon nominale, pas de problème de "rafraîchissement" de mes cellules cibles. Pourtant tout est identique à ce qui se passe lors de l'exécution de ma macro. Celle-ci ne fait que traiter beaucoup plus de données, dans plusieurs onglets, etc.
Je suis certain qu'il n'y a pas d'erreur de ma part sur la référence des cellules cibles, d'autant plus les règles leurs ont bien été affectées.
A ce stade, je n'arrive pas à comprendre quelle différence il peut y avoir entre la macro et ce fichier d'exemple, pour que l'un fonctionne et l'autre partiellement.
Merci par avance pour toute lumière sur ce problème assez déroutant.
Salutations.
Florent
Je sollicite l'aide collective pour un problème en VBA que je n'arrive à résoudre.
J'ai développé une macro qui écrit des données dans plusieurs onglets, et qui procède à des mises en forme conditionnelles pour certaines cellules. Ces cellules doivent prendre le formatage (couleur) approprié en fonction de la valeur de la cellule :
- 0.3 > Valeur : Rouge
- 0.3<Valeur<0.4 : Jaune
- Valeur>0.4 : Vert
Jusque là, rien de très complexe.
J'ai donc une fonction qui permet d'effectuer la mise en forme conditionnelle, prenant en paramètre le Range de la cellule cible. Cette fonction est appelée lors de l'exécution de la macro, et fonctionne parfaitement, en tout cas en apparence.
En effet, à l'issue de l'exécution de la macro, plusieurs cellules auront la mise en forme appliquée, ainsi qu'une valeur générée. La mise en forme pour la valeur générée est correcte. MAIS, si l'on modifie la valeur de la cellule, la mise en forme ne s'ajuste plus selon les règles qu'elle est censée suivre. Décrit comme cela, cela ressemble à un problème dans les règles générées. Pourtant, si je contrôle les règles manuellement via l'interface graphique Excel pour chaque cellule cible, elles sont systématiquement correctes.
Encore plus fort, si j'édite (via l'interface graphique) une de ces règles générée automatiquement par la macro, sans la modifier, et juste en appuyant sur OK. Cette fois, elle va s'appliquer de façon nominale. Comme si il y avait un problème de "rafraîchissement"...
J'ai donc tenté d'isoler uniquement la fonction liée à la génération de la mise en forme conditionnelle dans un fichier test (qui est en pièce jointe). Mais, lorsque j'exécute ce fichier test, tout marche de façon nominale, pas de problème de "rafraîchissement" de mes cellules cibles. Pourtant tout est identique à ce qui se passe lors de l'exécution de ma macro. Celle-ci ne fait que traiter beaucoup plus de données, dans plusieurs onglets, etc.
Je suis certain qu'il n'y a pas d'erreur de ma part sur la référence des cellules cibles, d'autant plus les règles leurs ont bien été affectées.
A ce stade, je n'arrive pas à comprendre quelle différence il peut y avoir entre la macro et ce fichier d'exemple, pour que l'un fonctionne et l'autre partiellement.
Merci par avance pour toute lumière sur ce problème assez déroutant.
Salutations.
Florent
Pièces jointes
Dernière édition: