Excel 2013 : Affichage des segments sélectionnés dans un TCD [Résolu]

Signaler
Messages postés
3
Date d'inscription
mercredi 10 février 2016
Statut
Membre
Dernière intervention
11 février 2016
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,


Question : Je souhaite afficher les items sélectionnés dans 2 segments (Année, Mois) qui gère un TCD (Excel 2013) dans une autre feuille.

Je dispose du code suivant:

Sub Copier_Item_Segment_Sélectionn​er_Vers_A1_AX()

Dim x As Slicer, Sh As Worksheet, A As Long
Dim B As Long, NbItem As Long

With ThisWorkbook
'Nom de la feuille où est le segment (TDC)
Set Sh = .Worksheets("TCD" )
With .SlicerCaches(1)
'Donne le nombre d'items dans la liste du segment
NbItems = .SlicerItems.Count
'Une boucle sur chaque item du segment
For B = 1 To NbItems
With .SlicerItems(B)
'Si l'item du segment est sélectionné
If .Selected = True Then
'Incrémentation de la variable A
A = A + 1
'Copie de la valeur de l'item vers la cellule Ax
Sh.Range("A" & A) = .Value
End If
End With
Next
End With
End With
End Sub



En collant ce code dans dans la feuille TCD ça marche lorsque je fais "Run" dans la fenêtre VBA;

Mes questions sont les suivantes.
1) Comment faire pour le déclencher automatiquement lorsque je change la sélection du segment (ou une autre façon) dans cette feuille TCD,
2) Comment effacer la copie des items lorsque je le déclenche de nouveau (sinon les anciens restent affichés),
3) Comment copier les items dans une autre feuille que TCD (exemple feuille TB),
4) Comment afficher les items pour 2 segments.


Merci de la part d'un amateur d'Excel, novice en VBA

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.

4 réponses

Messages postés
15063
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
18 juin 2021
95
Hello,

Message édité pour rajouter les balises 'code'. Voir l'encadré.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour,
la relecture des règles de ce forum te rappellera la nécessité de n'exposer qu'une seule difficulté spécifique et parfaitement isolée par discussion.
La présente discussion en comporte 4 !

Je ne vais donc que tenter de t'aider à résoudre la toute première (et ignorer les autres).

N'ayant pas ta version Office, je n'ai pas accès à l'objet Slicer.
la lecture de cette discussion :
http://stackoverflow.com/questions/27998731/how-to-run-a-macro-while-clicking-on-a-value-in-slicer-in-excel-vba
me donne toutefois à penser que ta solution (à la seule première question, donc) est dans l'utilisation de l'évènement Worksheet_PivotTableUpdate .
Messages postés
3
Date d'inscription
mercredi 10 février 2016
Statut
Membre
Dernière intervention
11 février 2016

ucfoutu,
Merci pour le rappel des procédures! J'utilise Excel 2013 avec Windows 8.1.
L’événement PivotTable Update déclenche la procédure c'est OK.
J'ai trouvé pour les questions 3 (autre feuille) et 4 (2° slicer). Il me reste de vieilles notions de DBase 3! il me reste juste une question, 1 seule, comment effacer ce qui était affiché avant de relancer la procédure?
Cordialement
GDMeunier
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Merci pour le rappel des procédures

A la bonne heure. Mais alors à appliquer :
1) - libération de la présente discussion (un clic sur le tag RESOLU au niveau de ton premier message)
2) - ouverture d'une autre discussion relative à cet effacement.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.