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 :

VBA TCD, pivotitems


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Par défaut VBA TCD, pivotitems
    Bonjour à tous,

    J’ai un souci pour la programmation d’un tableau croisé dynamique, j’ai plusieurs filtres à appliquer.

    Deux filtres me pose problème, pour l’un je dois ignorer toutes les valeurs négatives, seulement elles changent quotidiennement.

    Donc je voulais savoir s’il y avait un moyen pour faire un ordre logique du style inférieur ou égale à zéro = False ?

    Voici la partie concerné, si vous pouvez m’aider s’il vous plaîtJ. Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields("Quantité"). _
     
            CurrentPage = "(All)"
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields( _
     
            "Quantité")
     
            .PivotItems("-788").Visible = False
     
           .PivotItems("0").Visible = False
     
            .PivotItems("(blank)").Visible = False
     
        End With
     
        ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields("Quantité"). _
     
            EnableMultiplePageItems = True
    Et concernant le deuxième filtre ; je dois garder que les valeurs 0 et "vide" et ignorer toutes les autres. J’ai voulu prendre qu’elles et ajouter True mais les autres valeurs sont elles aussi true, donc ça ne m’arrange pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields( _
     
            "Quantité Reçue").CurrentPage = "(All)"
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields( _
     
            "Quantité Reçue")
     
            .PivotItems("0").Visible = True
     
            .PivotItems("(blank)").Visible = True
     
        End With
     
        ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields( _
     
            "Quantité Reçue").EnableMultiplePageItems = True
    Merci encore à vous.

    Ah oui j’oubliais : je suis une brêle ^^

    Mais j’avance petit à petit, mais là je bloque^^

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut
    Bonjour,

    d'abord quand tu écris un code merci d'utiliser le bouton # prévu à cette effet.

    Ensuite ton filtre me paraît étrange car d'après ce que j'ai compris tu veux dans un même tableau tout et son contraire.

    Tu ne peux pas faire un tableau avec les valeurs positives et un avec les valeurs négatives?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Par défaut
    Bonjour,

    Merci de ta réponse, tout d'abord je m'excuse concernant le code.

    C'est deux filtres concernant des données différentes, un est pour "Quantité" et l'autre pour " Quantité reçue"

    merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 271
    Par défaut
    Voila ce que je te propose,

    Dans le tableau dans lequel tu prends tes donnés, tu insères deux colonnes dans lesquelles tu ne recopies que les valeurs qui t'intéresse. Après tu mets ton TCD en forme en n'affichant pas les valeurs vides.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2014
    Messages : 7
    Par défaut
    Oui j'y avais pensé mais ce n'est pas possible pour différentes raisons.

    Il n'y pas moyen d'insérer un ordre logique alors?

    Bonne journée

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    la fonction FiltrePivotTables filtre ce que tu passe en paramètre à toi de définir ce que tu veux garder par une boucle ou autre attention, les valeurs du champ sont séparées par un ";"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub test()
    FiltrePivotTables ActiveSheet.PivotTables("TDC"), "FOURNISSEUR", "E.Leclerc;Auchan"
    End If
    Public Function FiltrePivotTables(tb, Champ As String, V As String) As Boolean
    On Error Resume Next
    Dim I As Integer
    Dim I2 As Long
    Dim trouve As Boolean
    Dim T
    T = Split(V & ";", ";")
    FiltrePivotTables = True
    tb.PivotFields(Champ).ClearAllFilters
    For I = 1 To tb.PivotFields(Champ).PivotItems.Count
        trouve = False
        For I2 = 0 To UBound(T)
        If Trim("" & tb.PivotFields(Champ).PivotItems(I).Name) = Trim("" & T(I2)) Then trouve = True
        Next
        If trouve = False Then tb.PivotFields(Champ).PivotItems(I).Visible = False
        If Err Then FiltrePivotTables = False
     
    Next
     On Error GoTo 0
    End Function

Discussions similaires

  1. [XL-2010] TCD PivotItems cocher uniquement le vide
    Par Bell666 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 25/09/2013, 18h49
  2. VBA - TCD tri au format nombre
    Par thebest31 dans le forum Excel
    Réponses: 1
    Dernier message: 15/05/2013, 00h00
  3. [XL-2003] VBA TCD : cocher et decocher des valeurs de champs
    Par yanou91 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/01/2013, 16h06
  4. Excel:VBA:TCD et date croissante
    Par chrystobale dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/03/2009, 10h17
  5. Réponses: 3
    Dernier message: 02/09/2008, 11h48

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