Mise en forme conditionnelle / Carte - Excel VBA

Correction en ce qui me concerne ...

Sub colorier()
For i = 2 To [A1].End(xlDown).Row
    ActiveSheet.Shapes(Cells(i, 1).Value).Fill.ForeColor.RGB = Cells(i, 4).DisplayFormat.Interior.Color
Next
End Sub

Sub effacer()
For i = 2 To [A1].End(xlDown).Row
    ActiveSheet.Shapes(Cells(i, 1).Value).Fill.ForeColor.RGB = RGB(191, 191, 191)
Next
End Sub

edit : je viens de resimplifier le code, et j'utilise en effet DisplayFormat.Interior.Color comme suggéré ci-avant

@Steelson ! Pour ce qui te concerne, je confirme l'indication d'Ausecour, ...DisplayFormat.Interior,Color... récupèrera une couleur mise par MFC.

J'ai au moins appris quelque chose ! et qui ...

1/ évite de reproduire les conditions de la MFC

2/ s'appuie sur les paramètres de couleur choisis dans la MFC

J'aime bien quand les codes sont "génériques" et s'appuient le plus possible sur les feuilles elle-même.

Bonjour MFerrand

Enorme travail d'identification !

J'ai maintenu 3 formes sans les renommer (ont échappées peut-être à des regroupements ?), qui correspondent à Jersey, Guernesey, et l'île de Man (les îles anglo-normandes ne sont pas visibles, mais Man l'est si on grossit suffisamment).

Et Noirmoutier dans tout cela ?

J'ai au moins appris quelque chose ! et qui ...

1/ évite de reproduire les conditions de la MFC

2/ s'appuie sur les paramètres de couleur choisis dans la MFC

J'aime bien quand les codes sont "génériques" et s'appuient le plus possible sur les feuilles elle-même.

Eh bien content de pouvoir apprendre quelque chose à un cador d'Excel

Bonjour à tous et bonne journée

Oh je suis pas un cador ... je suis juste très curieux.

Et je pense aussi que les avis complémentaires comme ici sont source de progrès.

Je serais le client, je mettrais à profit le travail du maréchal, peut-être en changeant le nom des shapes avec les codes officiels des pays (F, D, GB etc.), en mettant en place un tableau de lien entre les pays tels qu'écrits par l'utilisateur et ces codes, et en utilisant comme tu l'as fait les paramètres couleurs des MFC.

@Steelson

C'est vrai que ce site est génial pour apprendre à coder en regardant les réponses des autres, c'est notament là que j'ai appris à utiliser la fonction Intersect pour restreindre l'activation d'un évènement Change dans une feuille par exemple

Au plaisir de te relire sur d'autres sujets en tout cas

Hello Bonjour à tous !

@Steelson: N'avais-tu pas participé à à la discussion, il y a 2 ou 3 ans, au sujet de DisplayFormat ?

Un découverte collective qui nous ouvrait des horizons... C'est, si mes souvenirs sont bons eriiic qui avait alors signalé que l'on ne pouvait l'utiliser dans des fonctions personnalisées opérant sur les couleurs.

Effectivement, Microsoft signalait explicitement que cette propriété ne pouvait être utilisée dans une fonction en feuille de calcul. Mais elle demeure tout à fait utilisable en Sub ou Function en VBA...

Au cas particulier, je garde une préférence pour un codage des couleurs choisies directement dans la procédure pour colorer à partir des critères (ce qui n'empêche nullement la mise en place d'une MFC sur les mêmes critères). Et si l'on veut modifier le système de couleurs, un tableau légendant les couleurs et indiquant les critères de chacune pourrait alors faire référence pour la procédure qui les prélèverait dans ce tableau (et pourrait dans la foulée modifier en conséquence la MFC...)

Pas de forme autonome à l'emplacement de Noirmoutier ! Donc, presqu'île non détachée ou fusionnée dans le groupe. Et celle que j'ai supprimées ne correspondaient en général pas à des emplacements d'île, sauf peut-être une qui pouvait être Lampedusa (je m'en suis avisé après coup), mais de toute façon elles ne sont en général pas visible même en grossissant fortement...

Bonne journée.

@Steelson: N'avais-tu pas participé à à la discussion, il y a 2 ou 3 ans, au sujet de DisplayFormat ?

ben non ... je découvre

https://forum.excel-pratique.com/viewtopic.php?p=481231#p481231

et cette fois j'ai bien enrgistré

est-ce aussi utilisable en dehors d'une MFC ? j'allais tester ... a priori non d'après le message d'Eric ! ... hé bien si quand même !

@Steelson

Je crois que vu le nom de la propriété, la couleur qui est rapportée est finalement celle affichée par la cellule, MFC ou non, je crois que c'est ça

Ausecour a raison. DisplayFormat.Interior.Color renvoie la couleur affichée, quelle que soit sa provenance.

En fait la seule ambiguïté en matière de couleurs, mais qui ne tient pas à DisplayFormat, mais à Color, c'est que la propriété renvoie blanc en cas d'absence de couleur (détection de la couleur de fond de la fenêtre si l'on n'a pas modifié la valeur par défaut). Si on n'utilise pas le blanc, la détection blanc est assimilable à absence de couleur. Si on l'utilise il faut tester spécifiquement cet aspect...

Cordialement.

J'ai poursuivi l'exercice que je voulais faire en m'appuyant sur la carto de MFerrand.

J'ai donc un tableau des pays avec leur code / plaque minéralogique (précédé de _)

Dans cet exemple, les couleurs ne veulent rien dire, c'est juste un essai.

Pour faire le monde ... bon courage !

11carte-eu.xlsm (237.11 Ko)
Rechercher des sujets similaires à "mise forme conditionnelle carte vba"