Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Afficher / masquer des shapes ou des groupes de shapes avec condition mini/maxi

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

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 !

pat66

XLDnaute Impliqué
Bonjour le forum,

j'ai besoin d'aide car je souhaite afficher/masquer des groupes de shapes selon les valeurs mini et maxi saisies dans E6 et H6
Le fichier ci joint contient La macro de Franc58 qui m'a bien aidé pour afficher/masquer les shapes mais je dois - 1er fichier soit les grouper et donc adapter cette macro avec des groupes et non avec des shapes,
- 2ème fichier soit utiliser if visible false/true

Tout est indiqué dans les fichiers ci joint pour une meilleure compréhension, le deuxième effectue bien ce que je souhaite mais c'est tiré par les cheveux

merci votre aide
 

Pièces jointes

Dernière édition:
Solution
Bonjour Pat,
Pour mieux tester j'ai mis hors service la macro Worksheet_ChangeOLD.
Un essai en PJ avec une macro pour tout afficher, juste pour tester.
La macro opérationnelle avec :
VB:
Sub MasquerGroup()
    Dim Fe As Worksheet, Tbl() As Shape, S As Shape, Groupe As Range, I%, J%
    Set Fe = ActiveSheet
    For Each S In Fe.Shapes
        If S.Type = msoGroup Then                                       'si c'est un groupe
            J = 0
            For I = 1 To S.GroupItems.Count                             ' stocke les shapes dans le tableau Tbl
                J = J + 1
                ReDim Preserve Tbl(1 To J)
                Set Tbl(J) = S.GroupItems(I)
            Next I
            Taille = UBound(Tbl)
            If Taille <...
J'ai vu que vous aviez initialisé un autre post avec le même souci.
C'est donc que ma dernière PJ ne vous satisfait pas, et je ne comprends pas pourquoi.
Juste par curiosité, à coté de quoi je suis passé ?
 
Re,

Non pas du tout, c'était avant de prendre connaissance de votre dernier post,
Demain matin, je le teste sur mon classeur et reviens vers vous c'est la moindre des choses

Merci Sylvanu pour votre implication

A demain
 
-
Bonjour Sylvanu,

J'ai testé votre solution du post #15, cela correspond exactement à ce dont j'ai besoin et je vous en remercie,

Précisions :
Opter pour les groupes ou les shapes me permet de ne pas modifier la mise en page de la feuille de mon fichier, mais ceux ci vont apparaitre sur du texte, il faudrait donc pour une meilleure visibilité qu'une forme de type (exemple : rectangle bleu (RGB 0,32,96) serve de fond uniquement lorsqu'ils apparaissent

La macro s'exécute avec Sub Worksheet_Change(ByVal Target As Range), c'est parfait, mais j'aimerais aussi pouvoir tester l'exécution avec un bouton (voir #2), auriez vous la gentillesse d'ajouter cette option afin que je compare les 2 solutions sachant que Sub ToutVoir() et Sub ToutMasquer() sont déjà présents

merci d'avance
 
Dernière édition:
Bonjour Pat,
Il suffit de rajouter ça :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A2:A4]) Is Nothing Then
        Select Case Target
            Case "Tout voir":       ToutVoir
            Case "Tout masquer":    ToutMasquer
            Case "Filtrer":         [E6] = [E6].Value
        End Select
    End If
End Sub
Un clic sur A2 rend visible tous les shapes.
Un clic sur A3 masque tous les shapes.
Un clic sur A4 filtre les shapes comme normalement.
NB: A la fin des tests vous pourrez invalider ces fonctions en simplement suppriment Worksheet_SelectionChange ou en la renommant, par ex Worksheet_SelectionChange_old
 

Pièces jointes

Super, bonne idée les clics sur A2:A4,
il ne manque plus l'ajout d'une forme qui servirait de fond uni pour une meilleure visibilité entre les formes lorsqu'elles s'affichent et les écritures présentes dans les cellules
Avez vous une idée ?

merci
 
Dernière édition:
Re,
Tout dépend de où se trouve les textes.
On peut les rendre invisibles ou les mettre en couleurs, en gras, changer la couleur du fond ....
Un petit fichier ex représentatif ? 😉
 
re,

je comprends mais je viens de voir quand augmentant la hauteur des lignes l'affichage des groupes et des textes ne se chevaucheront pas, donc le problème est résolu,

Une dernière chose Sylvanu, il faudrait que les valeurs de la ligne du haut (colonne A) et celle du bas (colonne B) ne s'affichent pas ensemble systématiquement
1 - Si E6 ou H6 sont vides = aucun groupes visibles
2 - A l'aide d'une macro ou d'un changement dès que les valeurs E6 et H6 sont saisies, seules les valeurs de la colonne A dans le périmètre sont visibles dans les groupes
3 - A l'aide d'un clic, pourquoi pas en A5, les valeurs du bas (colonne B) correspondantes s'affichent aussi (par exemple avec un changement de couleur des valeurs
4 - On garde les clics sur les cellules A2:A4

en quelque sorte scinder l'affichage en 2 temps, sachant que la couleur de la feuille est en RBG(0,92,96), est ce possible ?

je pense c'est la dernière modification pour ce sujet

merci
 

Pièces jointes

Dernière édition:
Bonjour Sylvanu,

tout fonctionne parfaitement (voir #post24), mais j'aurais encore besoin de votre expertise pour ajouter le Signe € car lorsque j'attribuel le format monétaire en euros, il affiche les cellules en rouge avec le signe du dollar $

auriez vous la gentillesse de m'aider à faire en sorte que les montant des cellules rouges soit avec le signe € et non avec le signe $

un grand merci pour votre aide

pat66
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…