XL 2016 Affichage "FORMES" suivant résultat d'une cellule

kimagure

XLDnaute Nouveau
Bonjour à tous.
voilà, j'essaie de faire un plan avec affichage de certaines "FORMES" (en général, rectangle de couleur) suivant une valeur.
Exemple; si A1="X", alors affichage de la forme "1".
je ne sais pas si j'ai été assez clair, ou tout simplement si cela est possible en ne fesant que des formules...
Merci d'avance et a +.
Cordialement
Kimagure
 
Solution
Bonjour Kimagure,
Un essai en PJ. La macro s'éxécute automatiquement quand on sélectionne la feuille Plan avec :
VB:
Sub Worksheet_Activate()
    Dim Tablo, i%
    Application.ScreenUpdating = False
    Tablo = Sheets("Datas").[A1].CurrentRegion
    For i = 2 To UBound(Tablo)
        If Tablo(i, 2) = "X" Then Flag = False Else Flag = True
        On Error Resume Next
        ActiveSheet.Shapes(Mid(" " & Tablo(i, 1), 2)).Visible = Flag
    Next i
End Sub
A noter que vous avez 4 figures nommées 2NXT qui ne sont pas dans Datas.
Pour les voir, il suffit de mettre des X partout. Seules les figures non appelées seront visibles.
Je rappelle qu'on ne peut avoir qu'une figure du même nom.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Kimagure,
si cela est possible en ne fesant que des formules...
Donc sans VBA ? Ce serait plus simple.

Par formules on peut afficher des images stockées dans la feuille, un exemple :

Sinon serait ce suffisant de colorer une cellule en fonction d'une valeur ?
On pourrait s'orienter vers une simple MFC.
 

kimagure

XLDnaute Nouveau
Hello Sylvanu, j'ai commencé à regarder ce que tu m'as envoyé ( et que je n'avais pas trouvé malgré mes recherches Web) et je te remercie. par contre, ici, je pense qu'on affiche une image dans une case, suivant le nom. moi je voudrais qu'une image s'affiche à un endroit bien précis. exemple: tu as une carte Google MAP, et suivant plusieurs résultats, je vois la ville de Marseille, Lorient et Nantes alors que les autres seront cachés ( en faite, dans cet exemple, toutes les villes de France seraient masquées par un carré blanc et s'effaceraient si le résultat est bon et si la ville doit être affiché).
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une forme peut être renommée de la même façon qu'on peut nommer une cellule ou une plage :
1699890551684.png

Ensuite si on clique sur un nom en colonne A on exécute la macro qui lit la cellule et fait apparaitre la forme qui porte le même nom avec : ActiveSheet.Shapes(Target).Visible = True

Donc si on rajoute d'autres noms et d'autres cercles qui portent le même nom, ils seront actifs sans toucher au VBA.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
C'était juste un exemple.
On peut faire à peu près n'importe quoi en VBA.
Ce qui est important, ce sont les spécifications au départ.
Par ex dans la PJ un clic fait apparaitre la ville, on peut faire apparaitre plusieurs villes. Un second clic sur une cellule fait disparaitre la ville du même nom.
Mais si on ne veut plus toucher au VBA ensuite il faut que les règles soient claires au départ. Dans ce cas il n'y aura pas de maintenance. :)
 

Pièces jointes

  • EssaiCarte (1).xlsm
    327.5 KB · Affichages: 3

kimagure

XLDnaute Nouveau
Bonjour Sylvanu. Merci pour tes réponses. je me rend compte que c'est un peu plus complexe que ce que je pensais. je joints un excel pour mon cas. mon but est de récupérer une data ( formule affichant une "X" en colonne B de la Feuille Datas) et s'il y a une Croix, alors le quadrilatère de la feuille "Plan" s'efface.
Exemple: s'il y a une crois en case B2, le rectangle "1" s'efface.
à la base, je comptais le faire avec vos aides, mais je me rend compte que c'est assez complexe... :-/
Merci pour votre aide
 

Pièces jointes

  • Besoin 1.xlsm
    27.9 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Kimagure,
Un essai en PJ. La macro s'éxécute automatiquement quand on sélectionne la feuille Plan avec :
VB:
Sub Worksheet_Activate()
    Dim Tablo, i%
    Application.ScreenUpdating = False
    Tablo = Sheets("Datas").[A1].CurrentRegion
    For i = 2 To UBound(Tablo)
        If Tablo(i, 2) = "X" Then Flag = False Else Flag = True
        On Error Resume Next
        ActiveSheet.Shapes(Mid(" " & Tablo(i, 1), 2)).Visible = Flag
    Next i
End Sub
A noter que vous avez 4 figures nommées 2NXT qui ne sont pas dans Datas.
Pour les voir, il suffit de mettre des X partout. Seules les figures non appelées seront visibles.
Je rappelle qu'on ne peut avoir qu'une figure du même nom.
 

Pièces jointes

  • Besoin 1.xlsm
    27.5 KB · Affichages: 4

Discussions similaires

Réponses
12
Affichages
534

Statistiques des forums

Discussions
315 093
Messages
2 116 139
Membres
112 669
dernier inscrit
Guigui2502