Colorier une carte avec plusieurs couleurs

Bonjour à tous,

nouvelle question.

j'ai trouvé une carte à implanter sous excel avec un code VBA, que lorsque je remplis mon tableau, cette carte devient rouge dans les départements choisis

Mon but est que, lorsque je remplis ma "LISTE" et que je renseigne la case "Dep" mon département ce coloris d'une couleur, en fonction de la région à laquelle il est assimilé

pour exemple :

ma région 1 (REG_01) regroupe les départements 68-67-90-25 etc..

REG_02 : 26-69-74-73 etc..

REG_03...

La liste complète des départements par région est dans la feuille " Départements"

merci d'avance pour votre soutient, j'espère avoir été clair au max..

Bonjour,

Juste une petite retouche sur la procédure ColorierDepts, attachée au bouton Actualisation sur la feuille Carte :

  • ajout d'une variable reg pour y affecter la ligne de la cellule colorée correspondant à la région,
  • remplacement de la ligne colorant en rouge par une ligne colorant selon la couleur de la région.

Cordialement

Ferrand

super ferrand !

ca marche comme je voulais

merci beaucoup pour ta réponse

Encore petite question

Si maintenant j'aimerai que pour un département sur la carte, la couleur deviennent plus foncé

Exemple pour le dep68:

0 machine -> couleur normal

0-5 -> une couleur

6-10 ->.couleur plus foncé

Etc... Est ce possible ?

Tu peux assombrir la couleur en définissant par exemple : .TintAndShade = -0.5

Mais cet assombrissement étant sous condition, le préalable est : comment vérifie-t-on la condition ?

C'est à dire où trouve-t-on ce nombre de machines par département.

Tu ne peux continuer d'ajouter des agréments au petit bonheur selon les envies du moment, si tu ne commences pas par définir une structure solide de ton fichier permettant d'accéder à toutes les informations.

Jusqu'ici on fait des greffons sur des procédures qui avaient une autre finalité. Si on continue à faire des greffons sur des greffons, cela va finir par devenir ingérable.

Cordialement

bonjour Ferrand,

avant tout, lorsque je clique sur le bouton actualiser, il m'affiche une erreur au niveau des deux dernière lignes :

'on met les départements en rouge, là ou il y quelqu'un
    With Sheets("LISTE")
        For Each c In .Range("H3:H" & .Range("C65536").End(xlUp).Row)
                ShapeName = "Dpt" & Format(c.Value, "00")
                reg = CInt(c.Offset(0, 1)) * 4 + 4
            'ActiveSheet.Shapes(ShapeName).Fill.ForeColor.SchemeColor = 10
            ActiveSheet.Shapes(ShapeName).Fill.ForeColor.RGB = _
             ActiveSheet.Cells(reg, 15).Interior.Color

ca marchait très bien jusque maintenant ...

merci d'avance pour ton aide.

concernant mon autre question voici la structure de mon fichier:

1) une LISTE regroupant toutes les machines de toutes les régions

2) Une réécriture par région sur le même schéma que la "LISTE", pour un classement par région " REG_01", "REG_02", etc

La répartition des départements par région (région 01,02,03,04,05,06) ce trouve dans l'onglet "Départements"

3)Sur la carte, je souhaite colorer de manière différente les 6 régions, mais également foncer la couleur si il y a par exemple :

0 machine -> couleur normal

0-5 -> une couleur

6-10 ->.couleur plus foncé

Voici mon objectif final

merci d'avance

ca marchait très bien jusque maintenant ...

Donc, question : qu'as-tu modifié pour que ça ne marche plus ?

La liste des départements dans l'onglet Départements ne comporte pas le nombre de machines par département.

Dans chaque onglet "REG_01" "REG_02" etc... on retrouve le nombre de machine

concernant mon erreur, j'ai remarquer que le fait d'avoir insérer un tableau dans mon onglet "LISTE" ma fait buger le bordel

Si tu veux définir une condition liée au nombre de machines par département, tu mets le nombre de machines par départements en un endroit unique de ton fichier.

donc si je comprends bien :

pour chaque feuille il faut que je regroupe dans une feuille (par exemple "SOURCE") le nombre de machine

ensuite je dois mettre dans mon code

un code qui me dit (je ne suis pas très fort...)

If TotMachineRG_01 =0 then ... "ne rien faire'"

If TotMachineRG_01= 1 to 5 then "colorie un peu plus foncer"

a quel endroit le placer cette fois le code ?

un truc du genre ?

Ne mélangeons pas tout !

En l'état actuel, tu as une liste qui se monte sur LISTE.

La procédure qui colore va chercher dans cette liste les départements à colorer dans la colonne département. Je suis resté dans cette boucle pour extraire la région de la colonne région qui est voisine, sans toucher à la boucle, pour choisir la couleur en fonction de la région.

Tu veux ensuite faire varier l'intensité en fonction du nombre de machines, il faudrait donc que dans la liste des départements on réserve une colonne pour placer en regard le nombre de machines avec une formule de calcul qui le récupererait sur LISTE (a-priori, s'il n'y a pas d'autres endroits où cette information est disponible et concentrée). On récupèrerait donc ce nombre pour faire varier l'intensité de la couleur, toujours dans la même boucle. Mais cela n'est encore qu'un rafistolage.

La procédure de coloration est déclenchée par un bouton. Cela n'est pas gênant en soi. Mais il semble qu'elle ait été construite dans un contexte différent du tien. A l'heure actuelle, il n'y a que 12 éléments enregistrés dans LISTE, mais imaginons en plusieurs centaines. La coloration va se faire autant de fois qu'il y a d'éléments, un département pourra donc être coloré 10 fois ou plus, ce qui ne changera rien à la couleur, mais s'avère un peu inutile et prendra forcément plus de temps.

Si donc ton objectif est bien de continuer à enregistrer sur LISTE et que chaque inscription correspond à une machine, on peut à la fois dresser une liste sans doublon des départements et compter le nombre de machine pour chacun.

Il faut donc réviser la procédure de coloration dans ce sens, si cette hypothèse est la bonne.

Rechercher des sujets similaires à "colorier carte couleurs"