IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Supprimer les segments sur UNE seule feuille


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Août 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2019
    Messages : 19
    Points : 28
    Points
    28
    Par défaut Supprimer les segments sur UNE seule feuille
    Bonjour à tous,

    J'ai besoin d'aide pour problème que je rencontre.
    Je souhaite via VBA que les filtres sur mes segments s'annulent. La Macro que j'utilise actuellement fait le job mais sur l'ensemble de mes feuilles (normal puisque j'ai mis activeworkbook) alors que je souhaiterais que cela ne se fasse que sur le feuille 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub supfiltre()
     
    For Each Sslice In ActiveWorkbook.SlicerCaches
        Sslice.ClearManualFilter
    Next
     
    End Sub

    Auriez vous une idée?

    Merci d'avance,

    Laurent

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Alors je n'ai pas d'expérience avec les segments mais pour les traiter par feuille, il faut manifestement utiliser l'objet Shape de type 25
    J'ai fait quelques tests qui semble concluant

    shtData est le CodeName de la feuille traitée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Test()
      Dim shpe As Shape
      With shtData
        For Each shpe In .Shapes
          If shpe.Type = 25 Then shpe.Delete
        Next
      End With
      Set shpe = Nothing
    End Sub
    [EDIT]
    On peut le faire également avec cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SlicerCaches("Segment_Vendeur1").Delete
    Cependant, il est difficile de connaître le nom du segment si l'on en a deux affichant la même étiquette (par exemple Vendeur du tableau structuré et Vendeur du tableau croisé dynamique). L'un se nomme Vendeur et l'autre Vendeur1 or le nom qui apparaît dans l'onglet [Segment] est celui de l'étiquette, c'est à dire Vendeur


    [EDIT2]
    Il y a mieux
    Voici une fonction générique qui supprime les segments d'une feuille que l'on invoque avec cette ligne d'instruction RemoveSlicer shtData
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function RemoveSlicer(oSheet As Worksheet)
      Dim Slc As SlicerCache
      Dim Sli As Slicer
      For Each Slc In ActiveWorkbook.SlicerCaches
        For Each Sli In Slc.Slicers
           If Sli.Shape.Parent Is oSheet Then Slc.Delete
        Next
      Next
      Set Slc = Nothing: Set Sli = Nothing
    End Function
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 413
    Points : 16 255
    Points
    16 255
    Par défaut
    Bonjour à tous

    Pour défiltrer les segments il est plus simple de défiltrer directement le TCD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Nom de la feuille").PivotTables("Nom du TCD").ClearAllFilters
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Août 2019
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2019
    Messages : 19
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Merci pour vos retours. J'ai opté pour la réponse de 78CHRIS.

    Merci à vous,

    Laurent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier - Coller les résultats DES feuilles sur une seule feuille.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/04/2009, 15h14
  2. Imprimer une page web sur une seule feuille ?
    Par guidav dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/04/2006, 11h26
  3. [VBA-E] calculs automatique sur une seule feuille
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2006, 11h53
  4. Imprimer toutes les colonnes sur une même feuille
    Par Soulghard dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2006, 12h10
  5. Excel : consolidation de données sur une seule feuille
    Par aquamusic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2006, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo