Faire apparaître/disparaître des cellules Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
r
raykos67
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 15 avril 2016
Version d'Excel : 2013 FR

Message par raykos67 » 15 avril 2016, 13:27

Bonjour à tous,

J'essaie de créer une macro avec Excel 2013.
En abcisse, j'ai 6 mois de l'année et en ordonnée, différentes données comme les dimensions, le poids, le type de matériaux,, la position de la pièce etc..

En janvier, seul le poids et la longueur m'intéresse. En mars, seul le poids, le type de matériaux et la position de la pièce va m'intéresser. Chaque mois correspond à des suivis différents.

Il me faut une solution qui fait que par exemple, si je clique sur mars, tous les autres mois disparaissent automatiquement, de même pour les cases qui ne m'intéressent pas (longueur, largeur etc..). Et cela de façon automatique.


Quelle est la solution?

Merci d'avance:)
Modifié en dernier par raykos67 le 15 avril 2016, 13:50, modifié 1 fois.
Avatar du membre
M12
Membre impliqué
Membre impliqué
Messages : 2'687
Appréciations reçues : 73
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 15 avril 2016, 13:32

Bonjour,

Joint un petit fichier d'exemple pour le montage
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
r
raykos67
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 15 avril 2016
Version d'Excel : 2013 FR

Message par raykos67 » 15 avril 2016, 13:46

Bonjour, voici le fichier
donnes-GTIR.xlsx
données
(8.26 Kio) Téléchargé 26 fois
f
frangy
Passionné d'Excel
Passionné d'Excel
Messages : 4'342
Inscrit le : 19 novembre 2012
Version d'Excel : 2007 FR

Message par frangy » 15 avril 2016, 14:08

Bonjour,

Une proposition avec le masquage des colonnes et lignes suite à un double clic sur l'en-tête "mois".
Retour à la normale suite à double clic sur RAZ (A1).

A+
donnes-GTIR.xls
(39.5 Kio) Téléchargé 38 fois
r
raykos67
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 15 avril 2016
Version d'Excel : 2013 FR

Message par raykos67 » 15 avril 2016, 14:13

Bonjour Frangy,

Merci beaucoup, en effet, ca marche. Tu peux m'expliquer comment t'as fais ?
f
frangy
Passionné d'Excel
Passionné d'Excel
Messages : 4'342
Inscrit le : 19 novembre 2012
Version d'Excel : 2007 FR

Message par frangy » 15 avril 2016, 18:06

J'ai utilisé la procédure évènementielle Worksheet_BeforeDoubleClick() qui se lance lorsqu'un utilisateur double-clique sur la feuille.
Tu peux voir cette procédure en faisant clic droit sur l'onglet "Feuil1" puis visualiser le code.

Dis-moi si tu as besoin de plus d'explications.

A+
r
raykos67
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 15 avril 2016
Version d'Excel : 2013 FR

Message par raykos67 » 18 avril 2016, 08:55

Bonjour,

Justement, quand j'ai visualisé le code, j'ai vu un tas d'écritures... et je me demande comment t'as fais. Merci bien
f
frangy
Passionné d'Excel
Passionné d'Excel
Messages : 4'342
Inscrit le : 19 novembre 2012
Version d'Excel : 2007 FR

Message par frangy » 18 avril 2016, 09:15

Bonjour,

Pour t'aider, voici le code commenté :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Col As Range
Dim Lig As Long
    'Si la cellule cliquée (target) appartient à la plage B1:G1 (les mois), alors
    If Not Application.Intersect(Target, Range("B1:G1")) Is Nothing Then
        'On inhibe l’action de double-clic par défaut.
        Cancel = True
        'On balaye les colonnes B à G
        For Each Col In Columns("B:G")
            'Si la colonne n'est pas celle qui contient la cellule cliquée, alors
            If Col.Column <> Target.Column Then
                'On masque la colonne
                Col.Hidden = True
            'Sinon
            Else
                'On affiche la colonne
                Col.Hidden = False
            End If
        Next Col
        'On balaye les lignes 2 à 11 et on controle le contenu des cellules de la colonne correspondant au mois choisi
        For Lig = 2 To 11
            'Si la cellule est vide, alors on masque la ligne
            If Cells(Lig, Target.Column) = "" Then Rows(Lig).Hidden = True
        Next Lig
    'Si la cellule cliquée est A1 (RAZ), alors on affiche toutes les colonnes et toutes les lignes
    ElseIf Target.Address = "$A$1" Then
        Cancel = True
        Cells.EntireColumn.Hidden = False
        Cells.EntireRow.Hidden = False
    End If
End Sub
A+
r
raykos67
Jeune membre
Jeune membre
Messages : 18
Inscrit le : 15 avril 2016
Version d'Excel : 2013 FR

Message par raykos67 » 18 avril 2016, 09:39

Avec la meme methode que toi, je n'arrive pas à le faire... pourtant je suis la meme logique..
gtir-modifié.xls
(39 Kio) Téléchargé 13 fois
f
frangy
Passionné d'Excel
Passionné d'Excel
Messages : 4'342
Inscrit le : 19 novembre 2012
Version d'Excel : 2007 FR

Message par frangy » 18 avril 2016, 12:52

Est-il normal que la procédure prenne en compte un double clic dans C4:N4 ?

A+
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message