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

GDMeunier 3 Messages postés mercredi 10 février 2016Date d'inscription 11 février 2016 Dernière intervention - 10 févr. 2016 à 11:29 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 10 févr. 2016 à 18:40
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

BunoCS 14176 Messages postés lundi 11 juillet 2005Date d'inscriptionModérateurStatut 19 octobre 2018 Dernière intervention - 10 févr. 2016 à 14:31
0
Merci
Hello,

Message édité pour rajouter les balises 'code'. Voir l'encadré.
Commenter la réponse de BunoCS
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 10 févr. 2016 à 16:55
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
GDMeunier 3 Messages postés mercredi 10 février 2016Date d'inscription 11 février 2016 Dernière intervention - 10 févr. 2016 à 18:20
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 10/02/2016 à 18:41
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.