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

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

  • Classeur1-complet-groupes.xlsm
    23.4 KB · Affichages: 0
  • Classeur1-complet.xlsm
    25.6 KB · Affichages: 1
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 <...

pat66

XLDnaute Impliqué
-
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:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Classeur1-complet-groupes (V6).xlsm
    24.9 KB · Affichages: 4

pat66

XLDnaute Impliqué
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:

pat66

XLDnaute Impliqué
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

  • Classeur1-complet-groupes (V6)-modifié.xlsm
    27.2 KB · Affichages: 1
Dernière édition:

pat66

XLDnaute Impliqué
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

  • Classeur1-complet-groupes (V7).xlsm
    26 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 274
Membres
103 168
dernier inscrit
isidore33