Bonjour à toutes et à tous,
je cherche à lier mes deux segments de la feuille "PG" qui ont le même nom et qui proviennent pour l'un d'un TCD, pour l'autre d'un tableau structuré.
Pour info j'utilise le TCD uniquement pour récupérer des valeurs d'un deuxième tableau structuré "BDD", soit les valeurs qui sont en haut du tableau sur la feuille "PG".
J'aimerais que lorsqu'on choisit une valeur dans un Segment "SERIE_MACHINE", l'autre Segment "SERIE-MACHINE" choisisse la même valeur automatiquement.
(si cela fonctionne, je cacherai le deuxième Segment, mais il devrait permettre de trier les autres segments présents.)
j'étais passée par deux TCD à relier à un segment via Power Pivot, mais je n'y suis jamais arrivée, alors je continue à travailler sur ce fichier en l'état. En vrai si je pouvais me passer des TCD, je ne pense pas qu'ils aient tant l'utilité dans ce classeur. (à part les liens dynamiques au-dessus de la feuille "PG")
j'ajoute que la feuille "PG" à comme finalité l'impression.
Je vous remercie d'avance pour l'aide que vous pourriez m'apporter,
bien cordialement,
Estelle
PS j'ai fait un fichier test à partir de mon fichier de départ, du coup il est très volumineux alors je l'ai zippé (pas trouvé pourquoi il est si volumineux, macros ?)
Pour cloturer ce fil merci à @chris dont nous avons suivis les conseils de ma part et d' @EstelleXL .
=> Suppression du powerpivot pour le segment Serie Machine et travailler sur TCD et ou tableau structuré.
En réorganisant mieux le fichier , on a pu faire tout ce que demander Estelle mais qui feraient l'objet d'autres fils de discussion.
La Question d'Estelle : Affecter une valeur à un segment (serie Machine2) depuis une valeur sélectionnée dans un autre segment (serieMachine1) pour finalement filtrer un tableau structuré dont est issu serie Machine2 => Je vous déconseille en VBAce n’est pas de tout repos , suivant le nombre d'élements dans le segment on a le temps de boire le café,....
Tu as fait 3 demandes sur notre forum, il y a des contributeurs qui lisent tes fils mais qui comme moi ne doivent pas comprendre ce que tu cherches à faire. Tu es à fond dans ton fichier mais pas nous , cela ressemble à une facture/devis mais je ne sais pas quoi faire avec tes données et la représentation que tu veux en faire.
Vu les efforts que tu as dus faire pour nous demander de l'aide, je veux bien t'aider, toutefois je suis une quiche en TCD et autres segments, mais en VBA on peut presque tout faire sauf le café ...
Je te permets de me contacter en privé pour qu'on regarde ensemble ce qu'on peut faire.
Pour cloturer ce fil merci à @chris dont nous avons suivis les conseils de ma part et d' @EstelleXL .
=> Suppression du powerpivot pour le segment Serie Machine et travailler sur TCD et ou tableau structuré.
En réorganisant mieux le fichier , on a pu faire tout ce que demander Estelle mais qui feraient l'objet d'autres fils de discussion.
La Question d'Estelle : Affecter une valeur à un segment (serie Machine2) depuis une valeur sélectionnée dans un autre segment (serieMachine1) pour finalement filtrer un tableau structuré dont est issu serie Machine2 => Je vous déconseille en VBAce n’est pas de tout repos , suivant le nombre d'élements dans le segment on a le temps de boire le café,....
Toutefois je vous mets la procédure à appeler Majseg "Segment_ " & "Nomdusegment", "PEUGEOT"
VB:
Sub MajSeg(SegModif$, ByVal Ch$) 'procedure de Chris adaptée
Dim Cas As SlicerItem
Application.Calculation = xlCalculationManual
With ThisWorkbook.SlicerCaches(SegModif)
For Each Cas In .SlicerItems
Cas.Selected = Cas.Value = Ch
Next Cas
End With
Application.Calculation = xlCalculationAutomatic
End Sub
Par contre,
Récupérer la valeur d’un segment via l’évenementielle Worksheet_PivotTableUpdate est plus judicieux ; Un exemple de procédure
Unique c’est pour recuperer plusieurs valeurs à True .
En VBA , RecupValSeg "Segment_" & "NOMDUSEGMENT" ,true
VB:
Function RecupValSeg(NomSegment$, Unique As Boolean)
Dim Cas As SlicerItem
Dim T(), I&
With ThisWorkbook.SlicerCaches(NomSegment)
For Each Cas In .SlicerItems
If Cas.Selected Then
ReDim Preserve T(I)
T(I) = Cas.Value
If Unique = True Then Exit For
I = I + 1
End If
Next Cas
End With
RecupValSeg = T
End Function
Pour filtrer un tableau structuré
Si on veut filtrer le Tableau1 de la feuille « Donnes » sur la colonne 3 avec comme critère les valeurs sélectionnée d’un segment TOTO
On peut l’appeler ainsi FiltreTabStructure Sheets("Donnes"), "Tableau1", RecupValSeg("Segment_" & " TOTO", True), 3
VB:
Sub FiltreTabStructure(F As Worksheet, NomTab$, Critere1, _
Optional Col& = 1, Optional OP& = 7, Optional Critere2)
'Filtre un tableau struturé sur la colonne 1 par défaut
'Xlor=2,xlTop10Items=3 xlFilterValues=7...
With F.ListObjects(NomTab)
.AutoFilter.ShowAllData ' en cas de filtre déjà activé
If IsMissing(Critere2) Then
.Range.AutoFilter Col, Critere1, OP
Else
.Range.AutoFilter Col, Critere1, OP, Critere2
End If
End With
End Sub
je cloture donc le fil, un ENORME MERCI à @Zon ainsi que @chris pour leurs précieux conseils à tous les deux,
mon fichier est devenu plus léger et plus fonctionnel grâce à la suppression du modèle de données (power pivot)
et très fonctionnel grâce à votre aide, c'est un plaisir de voir que le partage et l'entraide existent (encore?), ça fait chaud au coeur, et aux fichier allégé
Merci beaucoup, et merci Zon pour ton précieux récap, que je n'aurais pas pu faire !
Estelle