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 24/02/2011, 14h32   #1
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 3
Points : 3
Par défaut Modifier plusieurs TCD grâce à un menu déroulant

Bonjour bonjour,

J'utilise dans mon entreprise une base de données à laquelle nous accédons sous forme de TCD. Mon problème vient du fait que j'ai à réunir dans un seul tableau des données venant de plusieurs TCD de ce type pour une utilisation mensuelle. Ces tableaux ont tous un champ de données "Mois", et j'aimerais pouvoir modifier le mois affiché de tous les tableaux en une opération.

En somme : comment je peux faire pour créer un menu déroulant (ou quelque chose de ce genre) me permettant de modifier le champ des tableaux de mes différents onglets ?

Merci d'avance.
Pesnoob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 15h01   #2
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 730
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 730
Points : 2 131
Points : 2 131
Salut,

C'est une technique que j'utilise souvent, mais je me base sur mon premier TCD pour déterminer le changement du champ, mais pour rester sur ton idée, voici le principe en considérant une liste de validation pour le mois en A1
Ce code est à placer dans le module de la feuille concernée

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Worksheet_Change(ByVal Target As Range)
Dim NbPT As Integer, R As Integer
Dim LeMois As String
 
If Target.Address <> "$a$1" Then Exit Sub
 
NbPT = ActiveSheet.PivotTables.Count
LeMois = ActiveSheet.Cells(1, 1).Value 'La liste déroulant est en A1
 
'
For R = 1 To NbPT 'Boucle sur les PivotTables
    ActiveSheet.PivotTables(R).PivotFields("Mois").ClearAllFilters
    ActiveSheet.PivotTables(R).PivotFields("Mois").CurrentPage = LeMois
Next R
 
End Sub
J'avoue ne pas avoir testé, j'espère ne pas avoir fait de boulette.

A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 10h59   #3
Invité de passage
 
Inscription : février 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 8
Points : 3
Points : 3
Merci pour l'aide, mais j'ai quelques soucis pour mettre en place ce que tu proposes. Je suis une bille en Visual Basic, et je dois avouer que j'ai du mal à comprendre comment utiliser cette sub ?
Pesnoob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h09   #4
Membre Expert
 
Avatar de Fvandermeulen
 
Frédéric Vandermeulen
Inscription : juillet 2007
Messages : 1 730
Détails du profil
Informations personnelles :
Nom : Frédéric Vandermeulen
Âge : 36
Localisation : Belgique

Informations forums :
Inscription : juillet 2007
Messages : 1 730
Points : 2 131
Points : 2 131
Re,

Dans VBA, dans le projet de ton classeur tu vois les feuilles qui composent ton classeur.

Fais un click droit sur la feuille qui contient les TCD et choisi 'Voir code'
Il suffit alors de copier le code que je t'ai proposé.

Il te reste à adapter $A$1 par la cellule qui contiendra le mois que tu veux appliquer.
Fais également attention à vérifier que le champ Mois est bien identique dans tes TCD.

A+
__________________
N'oubliez pas le si votre problème est solutionné.
Fvandermeulen 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 16h37.


 
 
 
 
Partenaires

Hébergement Web