PB-Macro Mise en forme conditionnelle

Bonsoir le forum

J'ai fais un code qui colorie certaines cellules de la colonne "F" en fonction de ce quelle contient ou pas au changement dans la feuille

Mais je n'arrive pas à avoir les cellules non colorées si elles sont vides

Si quelqu'un pouvait regarder et me dire ce qui ne vas pas

D'avance je vous remercie pour votre aide et votre disponibilité

7mfc-v1.xlsm (70.62 Ko)

Bonsoir,

Je vois plusieurs problèmes dans ton sujet:

  1. Tu cherches à réaliser par macro quelque chose qui est déjà pris en charge par Excel, avec les mises en forme conditionnelle (mais bon, tu cherches peut-être à pratiquer donc passons)
  2. Tu as le même code dans un module, mais il ne sert à rien dans le module, il ne s'enclenchera jamais, la procédure est liée à un évènement de la feuille qui est le changement de la sélection, si tu le places ailleurs que dans une feuille, il ne sera jamais lancé
  3. Pas de tabulation dans ton code, normalement quand on code, on aimes bien tabuler par endroit, quand on rentre dans une boucle, quand on fait des conditions... je te conseilles de regarder d'autres codes VBA sur internet par exemple, tu verras de quoi je parle (et le code du fichier joint)
  4. L'ordre de ton If Then...ElseIf then...End If : Cela vient peut-être d'un souci de compréhension par rapport aux tests logiques, je ne sais pas si tu as essayé de mettre un point d'arrêt au début de ton code et de l'exécuter pas-à-pas (très pratique pour débuguer), mais la façon dont ça fonctionne, c'est que dès qu'un test est vérifié (renvoie Vrai), le code situé après l'instruction Then est exécuté, puis le code reprend au End If, sans vérifier les autres tests, l'ordre est donc important. Ici tu testes en premier si la valeur est "Oui", ce qui est logique, puis tu testes si la valeur n'est pas "Oui", et enfin tu veux tester si la valeur est "", le souci c'est que "" est différent de "Oui", donc le code va valider le test <>""Oui", exécuter le code associé, puis aller au End If, le test <>"Oui" est trop vague, il faut le placer en dernier, tu dois mieux hiérarchiser tes tests, c'est comme si tu avais mis un Else avant un ElseIf.

Donc si tu corriges l'ordre de tes tests logiques, ça fonctionnera à nouveau.

Je te joins le fichier avec quelques corrections, je n'ai pas parlé de tous les problèmes du code car ça ferait un roman.

Je te joins aussi un cours de ce site: https://www.excel-pratique.com/fr/vba/conditions

Bonsoir Ausecour

Merci pour ton aide

1-Le but c'est justement de pouvoir remettre des couleurs en fonction des MFC qui ne sont plus dans le fichier

2-J'avais bien saisie que le code il fallait le mettre dans la feuille. L'exemplaire du code dans le module est comme une sauvegarde cela me permet entre autre de comparer ce que tu m'as renvoyé

3-D'habitude j'ai un outil dans le VBA qui le fait tout seul, mais hier j'ai été obligé de désinstaller celui-ci

4- Je connais les points d'arrêts mais c'est vrai que je n'y ai pas pensé pour ce coup là d'ailleur je sais aussi qu'on peux poser des espions mais je ne sais comment cela fonction

Autre question et je pense que tu as dû la voir venir...

le code fonctionne pour la colonne "F" comment je doit faire pour qu'il fonctionne sur la plage de colonnes "(F:O)" stp?

Bonjour,

Pourquoi faire un doublon ???
645 messages, tu n'es pas tout neuf...
https://forum.excel-pratique.com/excel/recuperer-code-couleur-de-cellule-168295
eric

Bonjour Le forum

Bonjour Eriiic

Je n'ai pas fais de doublon!!!

D'ailleurs je ne post que sur ce forum

J'ai créé un post parce que je n'arrivais pas à faire fonctionner mon code de MFC et Ausecour, m'a expliqué pourquoi

et

j'ai fait un post pour pouvoir récupérer le code couleur d'une cellule pour pouvoir justement le rapporter dans ma macro MFC et la tu m'as répondu sur l'autre post, d'ailleurs je n'ai pas encore regarder comment modifier mon code, mais lorsque j'applique le code ci-dessous, j'ai des codes uniquement en nombre, je n'ai pas poussé encore plus loin

Sub couleurMFC()
    MsgBox [F9].DisplayFormat.Interior.Color
End Sub

Pour expliquer, je reçois de la part d'un de mes sous-traitant un fichier sans les MFC, alors que normalement elles devraient y être. Normalement c'est pas très grave si je n'ai pas certaines cellules colorées , mais si j'ai besoin de reprendre le rendu de mon SST je dois les remettre car le logiciel qui mange le fichier ne reconnait pas les données et je dois toutes les faire à la main...

Sinon si il existe un code ou une manière pour importer les MFC d'un fichier vers un autre, Je suis preneur

Je vous remercie pour votre aide et votre disponibilité

Cordialement

Pardon je n'ai pas la solution pour appliquer le code à une plage de colonnes contigües ou non

Bonjour,

perso je ne comprend pas trop tes explications.
Si tu sais quelles MFC doivent être appliquées, tu les recrées d'office. Pas la peine d'essayer de les récupérer sur un autre fichier.
Et si tu ne le sais pas, comment veux-tu réinventer celles qui sont absentent de l'autre fichier ?
eric

Bonjour,

perso je ne comprend pas trop tes explications.
Si tu sais quelles MFC doivent être appliquées, tu les recrées d'office. Pas la peine d'essayer de les récupérer sur un autre fichier.
Et si tu ne le sais pas, comment veux-tu réinventer celles qui sont absentent de l'autre fichier ?
eric

J'avoue ne pas tout avoir compris non plus, je n'avais même pas fait le lien avec l'autre question!

Pour expliquer, je reçois de la part d'un de mes sous-traitant un fichier sans les MFC, alors que normalement elles devraient y être. Normalement c'est pas très grave si je n'ai pas certaines cellules colorées , mais si j'ai besoin de reprendre le rendu de mon SST je dois les remettre car le logiciel qui mange le fichier ne reconnait pas les données et je dois toutes les faire à la main...

Je ne sais pas ce qu'est un SST, le logiciel qui mange le fichier ne reconnait pas les données??? qu'est-ce que ça a à voir avec les MFC? les MFC sont juste là pour changer un peu l'affichage des données, je ne vois pas en quoi elles rendront les informations compréhensibles par un logiciel d'agrégation de données...

Bonjour le forum

Désolé pour les abréviations

SST Sous-traitant

je sais faire mes MFC, mais je fais cette commande pour un de mes collègues qui lui ouvre en moyenne un vingtaine de fichier avec plus de 150 lignes gérées par ces MFC

En soit ces MFC, elles ne sont pas très utiles visuellement, mais nous avons besoin de vérifier les données contenues dans les cellules colorées

Du coup au lieu de remettre des MFC dans chaque fichier excel ouvert, il me semble plus rapide d'appliquer un code sur la feuille active

En tout cas merci pour votre aide

Je vais continuer à creuser pour mes plages

Bonjour,

et bien supprime toutes les MFC pour ne pas surcharger le fichier et remet-les partout où tu en as besoin puisque tu les connais.
eric

Bonjour

Il y en a trop à saisir par document, le code que j'essaie de faire, c'est pour faire du contrôle.

Le fichier que je vous ai envoyé en pièce jointe est éditer par un logiciel de calculs de charges pour des poteaux télécom

Je n'ai pas le droit de le toucher mais des fois et je ne sais pas pourquoi les MFC ainsi que les listes déroulantes d'ailleurs disparaissent

c'est pour avoir un rendu homogène que j'essaie d'avoir une solution

Je vais appliquer le code à chaque colonne au pire mais ça ne sera pas beau

Merci pour votre aide

Bonjour,

Qui a dit ça ? Tu peux les mettre par macro.
Et comme tu as aussi dit qu'elles ne t'intéressent pas plus que ça, tu peux balayer les lignes pour calculer si chacune respecte les règles de la MFC pour traiter directement ces cellules. Voire même y mettre une couleur 'manuelle'.
Comme tu rechignes à donner spontanément toutes les infos, je vais m'arrêter là. Assez discuté dans le vide.
eric

Rechercher des sujets similaires à "macro mise forme conditionnelle"