Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 19h02   #1
Membre actif
 
Eric
Inscription : février 2008
Messages : 439
Détails du profil
Informations personnelles :
Nom : Eric

Informations forums :
Inscription : février 2008
Messages : 439
Points : 156
Points : 156
Par défaut Masquer colonne d'un TCD décroisé

Bonjour,

j'ai une feuille (Feuil1) avec 50 colonnes (Nom, Prénom, Région, Ville, Téléphone, ...). Après sélection de toutes les données, je fais des Tableaux Croisés Dynamiques.
Par exemple, je fais un TCD où je mets en ligne les Régions et en valeurs, je mets les Noms (Feuil2). Je le copie, je le colle dans une autre feuille (Feuil3), je le modifie en mettant les Villes en ligne et les Noms en valeurs => ainsi lorsque je fais "actualiser les données", tous les TCD se mettent automatiquement à jour.

(pour mon exemple, je fais simple..., mais en fait, je fais 10 TCD à partir de ma Feuil1)

Lorsque je clique sur "Total Nom", une nouvelle feuille (Feuil4) apparait avec les 50 colonnes de "Feuil1".

Question : est-il possible de masquer des colonnes automatiquement : dans mon exemple, si je clique sur "Total Nom", je souhaiterai avoir une feuille qui s'ouvre avec : une colonne avec tous les noms et une colonne avec les prénoms....(=les 48 autres données de colonne ne m'intéressent pas...)

Merci,

A+
ericdev67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2011, 12h37   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Dans un module standard, mets :

Dans le module de chaque feuille, mets :

Code :
1
2
3
4
5
6
7
8
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Total As Range, Var As Range
With ActiveSheet.PivotTables(1).TableRange2
    Set Var = Sheets("Feuil1").PivotTables(1).TableRange2
    Set Total = Var(.Rows.Count, .Columns.Count)
End With
If Target.Address = Total.Address Then test = True
End Sub
Dans le module "ThisWorkbook", mets :

Code :
1
2
3
4
5
6
7
8
9
10
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim i As Long, c As Range
    If test = False Then Exit Sub
    test = False
    For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1
        If Cells(1, i) <> "Noms" And Cells(1, i) <> "Prénoms" Then
            Cells(1, i).EntireColumn.Delete
        End If
    Next i
End Sub
en admettant que tu veuilles garder que les colonnes dont les entêtes sont :
"Noms" et Prénoms".
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/09/2011, 22h26   #3
Membre actif
 
Eric
Inscription : février 2008
Messages : 439
Détails du profil
Informations personnelles :
Nom : Eric

Informations forums :
Inscription : février 2008
Messages : 439
Points : 156
Points : 156
Génial Daniel.C,

Ca ne correspond pas exactement à ce que je cherchais, mais ton idée m'a permis de voir mon problème sous un autre angle....et donc j'ai réussi à faire ce que je souhaitais : j'utilise les macros pour créer mes TCD et comme ça, je le créé à partir des données que je souhaite

(peut-être pas très clair, mais, en résumé, j'utilise ton code pour créer mes 10 TCD et ça me donne ce que je cherchais....)

Merci,

A+ pour de nouvelles aventures !

Nickel ton idée + code, merci !

ericdev67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h28.


 
 
 
 
Partenaires

Hébergement Web