XL 2016 Macro hide unhide

MLIZIN

XLDnaute Junior
Re bonjour,
Je profite de la réactivité des personnes pour poser un autre problème avec une macro VBA.

J'ai joint un fichier simplifié pour exemple.

Onglet "Selection Pack - Phase" :
dans lequel je "coche ou décoche" ( = unhide ou hide des Cel dans le 2ième onglet )
Coche = Coln S = 1 Coln T = pas de croix
Décoche tout = Coln S = 0 Coln T = croix

Action sur 2ième onglet "Creation and Choice Doc" :
Si S5 = 1 ( 1er onglet) les Coln du Concept Design sont affichées
Si S5 = 0 ( 1er onglet) les Coln du Concept Design sont masquées ( sauf 1ere Coln )
Idem pour S7 en ce qui concerne le Basic Design
Idem pour le S9 en ce qui concerne le Detail Design, MAIS voilà cela ne fonctionne pas. Il n'affiche pas ou ne masque pas les Coln.

J'ai recopié la macro du "Coche-Decoche" du Concept ou du Basic en changeant la plage des colonnes, rien n'y fait.
J'ai lu ligne par ligne et je ne constate pas de différences
J'ai vérifié l'attribution de la macro au bouton et c'est la bonne.

Bref je ne sais plus quoi faire.

Merci de votre aide en espérant avoir été clair.

Marc
 

Pièces jointes

  • AAnnn-11.10-FORM-0001-Creation document test forum.xlsm
    156.2 KB · Affichages: 25

MLIZIN

XLDnaute Junior
Bonjour,
Merci j'ai besoin de nettoyer mes lunettes, en effet du coup cela va bcp mieux.

Par contre ton idée est séduisante mais je suis néophyte en VBA, aurais tu l'amabilité de m'expliquer un peu plus en détail ton idée ou en tout cas de me mettre sur la voie. Mon fichier étant très grand ( > 5000 lignes et 130 coln ) je cherche toute amélioration dans le traitement des données.

Merci encore pour ton temps.

Marc
 

vgendron

XLDnaute Barbatruc
Genre macro unique
VB:
Sub Coche_Decoche()
Dim Libelle As String
Dim ligne As Integer
Dim ListCol As String

  Libelle = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
  ligne = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row + 1
  If Libelle = "Cocher" Then
    Range("t" & ligne) = Chr(120)
    Range("s" & ligne) = 0
    Libelle = "Décocher tout"
  Else
    Range("t" & ligne) = Chr(111)
    Range("s" & ligne) = 1
    Libelle = "Cocher"
  End If
  ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text = Libelle
  Select Case ligne
    Case 5
        ListCol = "q:Ah"
    Case 7
        ListCol = "ak:bb"
    Case 9
        ListCol = "be:bv"
    Case 11
        ListCol = "by:Cp"
    Case 13
        ListCol = "cs:Dj"
    Case 15
        ListCol = "dm:dy"
   
    End Select
  Colonnes "t" & ligne, ListCol
End Sub
et tu affectes cette macro à tous tes boutons
 

vgendron

XLDnaute Barbatruc
avec un fichier épuré ca te donne ca..
à Noter. les colonnes identifiées dans le code, ne correspondent pas à ce qui est écrit sur la feuille à coté des coches..
 

Pièces jointes

  • AAnnn-11.10-FORM-0001-Creation document test forum.xlsm
    155.8 KB · Affichages: 25

MLIZIN

XLDnaute Junior
Oui je sais, je vais supprimer la référence aux plages dans le texte.
Par contre juste pour info avant d'effectuer le test je n'ai pas toujours chaque phase pour un projet.
Par ex :
Projet X = Concept et Basic Design
Projet Y = Detail Design et Construction
Projet Z = uniquement Qualification
Je reviens vers toi après la vérification. Merci en tout cas.

Marc
 

MLIZIN

XLDnaute Junior
Super je l'implémente dans mon fichier original.
Merci en tout cas.

As-tu une idée pour la chose suivante :
Dans le même fichier dans l'onglet "Selection Pack-Phase" Cln A à L, je sélectionne les S/Pack ( Cel brunes ) en inscrivant un 1 dans la Coln F. Les Coln G à L passe à 1 automatiquement en fonction du choix "Coche Decoche" des phases du projet. En fonction du choix dans la colonne F j'aimerais "hide" les lignes correspondantes dans l'onglet "Creation and Choice Doc"
Ex : Si 1 dans S/pack 01.11 et 01.15 il faudrait que les lignes 108 à 139 et 161 à 169 apparaissent et les autres pas. Soit la ligne "General Package", les tâches et documents y afférents, le Pack et éventuellement les tâches et documents y afférents ( pas dans l'exemple ) et les S/Pack et les tâches et les documents y afférents.
En sachant la grandeur du fichier ( > 5000 lignes ) macro ou filtre avancé ?

Merci de ta réponse en espérant ne pas abuser.

Marc
 

Discussions similaires