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

Messages postés
3
Date d'inscription
mercredi 10 février 2016
Dernière intervention
11 février 2016
-
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.
Afficher la suite 

Votre réponse

4 réponses

Messages postés
14272
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
7 décembre 2018
0
Merci
Hello,

Message édité pour rajouter les balises 'code'. Voir l'encadré.
Commenter la réponse de BunoCS
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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 .
Commenter la réponse de ucfoutu
Messages postés
3
Date d'inscription
mercredi 10 février 2016
Dernière intervention
11 février 2016
0
Merci
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
Commenter la réponse de GDMeunier
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.