XL 2016 [VBA] Mettre à jour un segment en fonction d'une liste filtrée

delsart59

XLDnaute Nouveau
Bonjour à tous,



Je viens à vous car j'ai un petit soucis.



J'ai un tableau de données qui est alimenté toutes les deux semaines et j'ai appliqué un filtre sur ce tableau.

Mon problème : Après que ma macro applique le filtre sur ce tableau, j'aimerais qu'elle les cellules résultantes de ce filtre apparaîssent dans mon segment et uniquement celles-ci.

Est-ce possible ?


Pouvez-vous m'aider ?

Si vous avez besoin de plus d'informations, je reste à disposition.

Je vous met un fichier expliquant ce que je n'arrive pas à faire.



Cordialement
 

Pièces jointes

  • problème excel.xlsx
    18.1 KB · Affichages: 8

delsart59

XLDnaute Nouveau
Bonjour,

Quelle macro ?
C'est juste une petite macro indépendante de ce fichier, qui filtre la derniere colonne.
Dans le fichier joint, j'ai simulé manuellement ce que fait la macro (filtre derniere colonne).
Et ce que j'aimerais faire c'est :
- Après que cette macro ait filtré la colonne, que les cellules non vides réstantes (ici Prénom) soient activent dans le segment et seulement celles-ci.

Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
bonjour

C'est juste une petite macro indépendante de ce fichier, qui filtre la derniere colonne.
Justement, avec 2016 cela pourrait être fait par power query.
Mais bon, puisque vous ne voulez pas répondre :

Après avoir transformé votre tableau en tableau structuré nommé "T_Datas":
VB:
Sub Segmenter()
    Dim plg As Range, c As Range
    Dim i As Integer, cnt As Integer
    Dim idx As Variant
    Set plg = ThisWorkbook.Sheets("Feuil1").Range("T_Datas[Prénoms]")

    With ThisWorkbook.SlicerCaches("Segment_Prénoms")
        cnt = .SlicerItems.Count
        For i = 1 To cnt
            With .SlicerItems(i)
                idx = Application.Match(.Value, plg, 0)
                If Not IsError(idx) Then
                    .Selected = Not plg.Cells(idx).EntireRow.Hidden
                Else
                    .Selected = False
                End If
            End With
        Next i
    End With
End Sub
 
Dernière édition:

delsart59

XLDnaute Nouveau
Désolé, il y'a peut-être eu une incompréhension.
Ce n'est pas que je ne veux pas transmettre ma macro, juste que je ne vois pas en quoi cela pourrait être utile dans ce cas. De plus, je souhaite apprendre donc si je vous transmets mon fichier brut et que vous me faites ma macro, je n'apprendrais rien, alors qu'ici je vais devoir l'adapter :).

Pourriez-vous me dire comment je peux faire le tableau structuré "T_Data" s'il vous plaît ?

Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Alors moi, quand je vais chez le garagiste et qu'il me demande d'apporter le carnet d'entretien ou tout autre renseignement, je suppose qu'il a ses raisons et qu'il en a besoin pour m'aider au mieux et je le laisse juger ce qu'il y a de mieux !


P.S. j'ai rajouté une ligne qui manquait dans la macro de mon dernier post.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Chez moi, ça marche bien. Et il n'y a aucune ligne de suppression de quoique ce soit.
Au fait ! Ne mettez pas un TCD en face d'un tableau que vous filtrez.
Les filtres masquent les lignes entières donc celle du tcd également !
 

Pièces jointes

  • segments excel.xlsm
    34.2 KB · Affichages: 7
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour à tous

je salue la patience d'Hasco.

Un exemple qui n’illustre rien (sans compter l'addition des ages...)

Cela me rappelle l'histoire d'un mec qui barbote chaque jour au bord du fleuve et interpelle les passants pour qu'on lui apprenne à nager, sans grand succès.
Au bout de quelques jours l'un d'eux lui demande :
  • pourquoi veux-tu apprendre à nager ?
  • pour aller de l'autre côté
  • uniquement pour cela ?
  • oui
  • il y a un pont à 300 mètres pour traverser
  • ah, je ne savais pas
 

delsart59

XLDnaute Nouveau
Bonjour à tous

je salue la patience d'Hasco.

Un exemple qui n’illustre rien (sans compter l'addition des ages...)

Cela me rappelle l'histoire d'un mec qui barbote chaque jour au bord du fleuve et interpelle les passants pour qu'on lui apprenne à nager, sans grand succès.
Au bout de quelques jours l'un d'eux lui demande :
  • pourquoi veux-tu apprendre à nager ?
  • pour aller de l'autre côté
  • uniquement pour cela ?
  • oui
  • il y a un pont à 300 mètres pour traverser
  • ah, je ne savais pas
Bonjour,

Je te remercie de ton intervention qui m'aide beaucoup.

Hasco arrive très bien à m'aider.
Mon sujet comporte un problème, un fichier lambda ( façon simplifié).
Je suis débutant et j'essaie d'apprendre alors oui j'ai beaucoup de questions et je le remercie de sa patience mais je pense que ton commentaire n'a aucun intérêt à la résolution de mon problème.

As-tu pris le temps de résoudre mon problème ou tu es juste arrivé sur la conversation et pris le temps d'ajouter ce commentaire ?

Cordialement
 

chris

XLDnaute Barbatruc
RE
Je vois que tu ne comprends pas la parabole...
Justement, comme Hasco, je pense qu'en imposant la solution (nager) et non la finalité (être de l'autre côté) tu rates la possibilité d'apprendre le meilleur moyen d'atteindre rapidement et simplement ton objectif...

Je rappelle aussi que le cross post non signalé n'est pas très bien vu...
 
Dernière édition:

delsart59

XLDnaute Nouveau
RE
Je vois que tu ne comprends pas la parabole...
Justement, comme Hasco, je pense qu'en imposant la solution (nager) et non la finalité (être de l'autre côté) tu rate la possibilité d'apprendre le meilleur moyen d'atteindre rapidement et simplement ton objectif...
Je comprends, toutes mes excuses.
Je vais tenter d'expliquer mon fichier (je ne peux pas le transmettre car fichier entreprise).
- J'ai une base de données qui est alimentée toutes les deux semaines,
- Cette base de données comporte une macro qui filtre les dernieres colonnes pour ressortir les lignes les plus critiques,
- Cette base de donnée alimente un TCD (pour mes segments et mes GCD)

Je souhaite montrer "ces lignes critiques", automatiquement sur mes GCD dans un dashboard.

Je suis parti sur des segments car c'est ce que me demandais mon supérieur, cependant si vous avez une autre solution je suis preneur.

Est-ce mieux ?

Cordialement
 

chris

XLDnaute Barbatruc
RE

Oui partiellement
J'ai une base de données qui est alimentée toutes les deux semaines
Tu pars d'un tableau comme celui de gauche ?

D'où vient-il ?
Les règles qu'applique la macro sont toujours les mêmes j'imagine ?
Filtre-t-on sur d'autres prénoms ou sur un ou N de la liste (sous-liste) ?

Toujours comme Hasco (je te rassure nous ne sommes pas mariés) je pense plutôt à PowerQuery

A priori un fichier contenant
  • une table des paramètres de filtrage
  • une requête PowerQuery récupérant directement les données toutes les 2 semaines, la filtrant en fonction de le table de paramètres et affichant le résultat soit par TCD soit directement
serait plus simple
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 011
Membres
103 093
dernier inscrit
Molinari