Autres (RESOLU)Masquer / afficher des colonnes sous condition d'une ligne

chaelie2015

XLDnaute Accro
Bonsoir FORUM
Je souhaite afficher ou masquer des colonne de A a X via un bouton selon les valeurs de la ligne A (A1-X1)
exemple : si la valeur des cellules de la ligne A= 2 afficher la colonne et si = 0 ou 1 alors masquer la colonne
si D1= 2 donc afficher la colonne D
F1= 2 donc afficher la colonne F
etc..
Merci par avance
 

Pièces jointes

  • charlie ecole.xlsx
    9.5 KB · Affichages: 35

mapomme

XLDnaute Barbatruc
Supporter XLD
Re @Staple1600, bonjour @dysorthographie :),

Je pensais qu'on cherchait à faire une macro deux en un (type bascule)

Effectivement c'est une autre interprétation. Dans ce cas, voici ma proposition (cliquer répétitivement sur le bouton de la feuille Feuil1).
VB:
Sub AfficherOuNon()
Static afficherTout As Boolean, x
   Application.ScreenUpdating = False
   If afficherTout Then [a1:x1].EntireColumn.Hidden = False Else For Each x In [a1:x1]: x.EntireColumn.Hidden = x <> 2: Next
   afficherTout = Not afficherTout: Me.Shapes("bascule").TextFrame2.TextRange = IIf(afficherTout, "Afficher", "Masquer")
End Sub
 

Pièces jointes

  • chaelie2015- Masquer & Afficher tout- v1.xlsm
    17.5 KB · Affichages: 8

dysorthographie

XLDnaute Accro

Staple1600

XLDnaute Barbatruc
Re

Il n'y avait aucune condescendance...
je pensais simplement que tu n'avais vu le message#3
Ni plus, ni moins.
J'aurais du ajouté un emoticone dans ma réponse pour être plus clair.

Au final, j'ai fini par retrouver mes esprits et mon toggle fonctionne
Voir mon message précédent
;)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
test OK
1ere exécution : masque
2ième exécution : démasque

Je reconnais que ton écriture est élégante et concise 👋 et que j'aurais eu plaisir à la trouver par moi-même (mais l'idée n'a jamais été - même en germe - dans ma caboche, - je dois le reconnaître :().

Mais insuffisamment testé alors 🤪 (juste pour te réveiller un peu plus et que je suis taquin à ch't'heure)

Le code ne fonctionne que si les colonnes sont dans un état cohérent par rapport à l'hypothèse de l'énoncé. Un contre-exemple:
  • on affiche toutes les colonnes
  • on masque à la mimine des colonnes à 2 en ligne 1
  • on répète ton code => les colonnes masquées à la mimine ne sont jamais ré-affichées.
 

Pièces jointes

  • chaelie2015 Test 1.xlsm
    17.1 KB · Affichages: 7
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

=>mapomme
Est-ce bien raisonnable d'être cohérent en plein début de week-end?
Comme dirait notre ami commun ;)
"...Si j'étais moi, je me méfierais."
En plus quand je lis cohérence quelque part, je pense cohérence cardiaque et là je me méfie doublement ;)

Comme tu as fait une PJ, je fais l'ouvrir
(Mais ton petit bout de VBA direct dans le message eut suffit ;))
 

Staple1600

XLDnaute Barbatruc
Re

mapomme
Le végépavé m'aura réussi alors ;)
J'ai donc creusé la piste Grouper
;)
VB:
Sub GrouperColonnes_sur_condition()
'NB: A ne lancer qu'une seule fois
Flag = False
For j = 1 To 24
    If Cells(1, j).Value <> "2" Then
    Flag = True: cVisible = cVisible + 1
    Else
    Flag = False
    End If
    If Flag = False And cVisible <> 0 Then
        Range(Cells(1, j - cVisible), Cells(1, j - 1)).EntireColumn.Group
        cVisible = 0
        ElseIf Flag = True And cVisible <> 0 And j = 24 Then
        Range(Cells(1, j - cVisible + 1), Cells(1, j - 1 + 1)).EntireColumn.Group
    Else
    End If
Next j
ActiveSheet.Outline.ShowLevels 0, 1
'inspiré par un code glané sur le web anglophone.
End Sub
Je te laisse me trouver les effets de bord pendant que je bois mon café avec un soupçon de lait de soja à la vanille
(oui, je sais, j'ai doublement honte ;))
 

Staple1600

XLDnaute Barbatruc
Re

=>mapomme
Restons groupés ;)
Pas de bug constaté sur mon dernier bout de code?

NB: Je ne suis pas désespéré mais comme tout bipède connecté, victime de biais cognitifs que les "pubards" exploitent éhontément avec la complicités des neurosciences ;)
 

Discussions similaires

Réponses
8
Affichages
325

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16