IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mise en forme conditionnelle par macro sur cellule contenant une formule [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Touriste
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Touriste
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Mise en forme conditionnelle par macro sur cellule contenant une formule
    Bonjour, la communauté,

    Je viens à vous suite à un problème de mise en forme conditionnelle, je m'explique.

    J'ai une macro qui a partir des données que je lui fourni me construit un planning annuel ( 12 feuilles "mois", puis dans chaque feuille, une ligne par collaborateur, l'activité journalière correspondant à un code pour chaque jour du mois concerné) pour mon équipe.
    Ensuite par macro, toujours, j'effectue une mise en forme conditionnelle des cellules "activité" de chaque collaborateur pour modifier la couleur de police et le fond de la cellule selon une liste de codes renseignée sur une feuille MFC ( j'utilise la MFCmultiples de Didier FOURGEOT).
    Jusque là, tout va bien (bien que la mise en forme ralentisse grandement la vitesse d’exécution, cela reste acceptable).
    Sur chaque feuille "mois", j'ai ajouté 7 jours en fin de ligne "collaborateur" pour chaque collaborateur afin de visualiser l'activité des 7 premiers jours du mois suivant. J'insère une formule récupérant les données sur la feuille "mois" suivante et là... rien ne se passe.
    Les données activités sont au format texte par commodité d'affichage ( code activité au format 010, 011, 012 ...), pour pouvoir afficher le résultat des formules, j'ai laissé les cellules contenant les formules au format standard et le résultat "activité" s'actualise correctement.
    Par contre le format ne se met pas à jour. j'ai constaté que si je revalide la formule récupérant la donnée activité de la cellule, la MFC fonctionne, mais si je modifie l'activité dans la cellule "source", la MFC ne prend pas en compte le changement...

    Auriez-vous une piste à m'indiquer ...?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    dans mes souvenirs la méthode : FormatConditions sur l'objet cellule permet de récupérer la mise en forme conditionnelle d'une cellule pour l'affecter sur une autre

    de plus ce tuto devrait te donner des pistes même s'il est axé sur la version 2003 et antérieur d'excel

    http://silkyroad.developpez.com/Exce...onditionnelle/

    Tu nous tiens au courant

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Candidat au Club
    Homme Profil pro
    Touriste
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Touriste
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Re,
    Merci pour la promptitude de votre réponse.
    Effectivement le FormatCondition permet de récupérer la mise en forme mais là n'est pas le problème car la même MFC est affectée au préalable à toutes les cellules concernée.
    Le problème relève de la detection du changement de valeur de la cellule.

    En feuille Février, si je change le contenu "activité" du 2 février pour Paul, en cellule "Février!D4", la MFC modifie le format en "Février!D4". La cellule liée par formule en "Janvier!AI4" affiche bien la même valeur que "Février!D4", mais la MFC ne tient pas compte du changement de valeur.

    A savoir, les codes "activités" situés en "Janvier!C4:Janvier!AG4" sont au format Texte. Lorsque que revalide la formule dans les cellules "Janvier!AH4" à "Janvier!AN4", pour que la MFC s'active, le format passe de Standard à Texte.
    Après cette manip, j'ai bien la valeur "Janvier!AI4" = "Février!D4" et la MFC affiche le même format.
    Par contre si je rechange l'activité en "Février!D4", la valeur se met à jour en "Janvier!AI4" mais le format lui n'est pas modifié...

    J'ai bien pensé à passer par l’événement Worksheet_Calculate mais je ne sais pas comment récupérer l'adresse de la cellule liée...( si changement en "Février!D4" alors recuperer adresse cellule liée et affecter même format que "Février!D4") ou un truc dans ce genre...

  4. #4
    Candidat au Club
    Homme Profil pro
    Touriste
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Touriste
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    je n'ai toujours pas trouvé de solution à mon problème...
    Le tuto de Silkyroad est en effet complet mais je n'ai pas trouvé d'indice m'expliquant pourquoi la mise à jour de la MFC ne se produit pas.
    Cependant, comme la MFC passe par un événement Worsheet_Change, est-ce que la mise à jour par recalcul automatique de la formule d'une cellule déclenche cet événement ? J'ai un doute et cela expliquerait la non prise en compte du changement de valeur... D'autant plus que la cellule mise à jour est située sur une autre feuille...

    Merci d'avance pour votre attention.

  5. #5
    Candidat au Club
    Homme Profil pro
    Touriste
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Touriste
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Re,

    Après vérification du mode d'emploi de la MFCmultiples de Didier FOURGEOT, je constate qu'il est spécifié qu'elle ne fonctionne pas avec des formules faisant référence à d'autres feuilles ou classeurs... et je suis passé à coté...

    Du coup, quelqu'un aurait-il une piste pour contourner le problème ?

    Merci d'avance.

  6. #6
    Candidat au Club
    Homme Profil pro
    Touriste
    Inscrit en
    Octobre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Touriste
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je reviens à vous pour m'excuser de vous avoir dérangé pour rien...
    J'ai finalement contourné le problème en intégrant à la MFC sur l’événement "Worksheet_Change" une procédure qui modifie la feuille "Mois-1" si un des 7 premiers jours de la feuille "Mois" est modifié pour un collaborateur.

    Merci de m'avoir lu et Merci à Igloobel pour son aide.

    A plus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Mise en forme conditionnelle sur une cellule contenant une formule
    Par CrasherSEP dans le forum Conception
    Réponses: 2
    Dernier message: 20/05/2015, 13h19
  2. [XL-2010] Manipuler les mises en forme conditionnelles par macro
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/04/2014, 17h44
  3. [XL-2010] Mise en forme conditionnelle par rapport à une autre cellule
    Par patch2007 dans le forum Excel
    Réponses: 10
    Dernier message: 09/03/2012, 08h56
  4. Mise en forme bordure par Macro sur plage nommée
    Par tempo-lyon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 01/10/2007, 10h52
  5. Réponses: 2
    Dernier message: 29/05/2007, 14h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo