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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
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.
 
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é).
 
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.
 
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

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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour