Faire apparaître/disparaître des cellules

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:)

Bonjour,

Joint un petit fichier d'exemple pour le montage

Bonjour, voici le fichier

70donnes-gtir.xlsx (8.26 Ko)

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+

72donnes-gtir.zip (13.63 Ko)

Bonjour Frangy,

Merci beaucoup, en effet, ca marche. Tu peux m'expliquer comment t'as fais ?

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+

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

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+

Avec la meme methode que toi, je n'arrive pas à le faire... pourtant je suis la meme logique..

16gtir-modifie.zip (13.86 Ko)

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

A+

Ah oui.. j'ai corrigé mon erreur et ça marche ! Merci beaucoup frangy

Bonjour, j'ai une autre question...

Je veux incorporer 2 cellules après chaque mois :

par exemple : janvier, cellule 1, cellule 2, février, cellule 1, cellule 2, mars, cellule 1, cellule 2.

Je voudrais que : par exemple lorsque je double clique sur un mois, il faut que ca me masque les autres mois et les données en ordonnées ou il y n'a pas de valeur (donc la même chose), mais que ca m'affiche les cellules 1 et 2 (qui sont les colonnes n+1 et n+2 pour chaque mois).

Suis-je assez clair ? Je pourrai reformuler d'une autre manière

Bonjour,

Visiblement, tu passes la charrue avant les bœufs. Tu devrais attendre d’avoir finalisé la structure de ton classeur avant de chercher à faire un programme de traitement.

Voici un exemple correspondant à ta demande.

A+

18gtir-modifie.zip (15.17 Ko)

Effectivement, tu as raison.

Sinon t'as fais exactement ce que j'avais voulu.

Merci encore frangy

Frangy, est-il possible de masquer les colonnes qui correspondent aux cellules n+1 et n+2 sur la "vue principale" et qu'elles apparaissent seulement lorsqu'on double clique sur un mois.

Bonjour,

Oui, oui, c'est possible !

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Col As Integer
Dim Lig As Long
Dim MaPlage As Range
    Application.ScreenUpdating = False
    For Col = 3 To 38 Step 3
        If MaPlage Is Nothing Then
            Set MaPlage = Columns(Col)
        Else
            Set MaPlage = Application.Union(MaPlage, Columns(Col))
        End If
    Next Col
    If Not Application.Intersect(Target, MaPlage) Is Nothing Then
        Cancel = True
        For Col = 3 To 38 Step 3
            If Col <> Target.Column Then
                Columns(Col).Resize(, 3).Hidden = True
            Else
                Columns(Col).Resize(, 3).Hidden = False
            End If
        Next Col
        For Lig = 3 To 27
            If Cells(Lig, Target.Column) = "" Then Rows(Lig).Hidden = True
        Next Lig
    ElseIf Target.Address = "$A$1" Then
        Cancel = True
        For Col = 3 To 38 Step 3
            Columns(Col).Hidden = False
            Columns(Col).Offset(, 1).Resize(, 2).Hidden = True
        Next Col
        Cells.EntireRow.Hidden = False
    End If
End Sub

Frangy, j'ai essayé le code, ca ne marche pas...

Est-il possible de masquer les colonnes qui correspondent aux cellules n+1 et n+2 sur la "vue principale" et qu'elles apparaissent seulement lorsqu'on double clique sur un mois.

C'est bien ce que fait le code que je t'ai donné, non ?

15gtir-modifie.zip (15.19 Ko)

A+

Là ca marche. Encore merci !

Rechercher des sujets similaires à "apparaitre disparaitre"