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 :

TCD masquer champ de ligne date groupée selon cellule [XL-2010]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 55
    Par défaut TCD masquer champ de ligne date groupée selon cellule
    Bonjour,

    Je dispose d'un fichier avec beaucoup de données avec lesquelles j'ai réalisé plusieurs tableaux croisés dans divers onglets.
    Je souhaite synchroniser les TCD selon des éléments saisis dans des cellules de façon à ne pas avoir à modifier individuellement chaque tableau et à permettre à des utilisateurs non initiés de le faire.

    Mes macros fonctionnent correctement mais je coince sur un point particulier.

    L'utilisateur saisit une date de début dans une cellule et la date de fin se positionne automatiquement au dernier jour du 13ème mois suivant.
    Ces dates se reportent très bien dans mon champ de ligne comme indiqué dans l'image ci-jointe.

    Ce que je n'arrive pas à faire, malgré de nombreux essais, c'est de masquer les élement antérieurs et postérieurs aux dates de début et de fin.
    Dans mon code ci-dessous il n'y a aucun souci si je mets la date en dur sous la forme ">31/01/2013" par exemple mais je ne réussis pas à le faire avec mes dates de début et de fin.

    Si quelqu'un(e) arrivait à me dépatouiller ce serait formidable.

    Amicalement

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim Debut As Date
    Dim Fin As Date
    Dim NbJours As Byte
    Dim DebutFiltre As String
    Dim FinFiltre As String
     
    If Not (Intersect(Target, Range("C1")) Is Nothing) Then
     
        'Désactive les événement afin de ne pas reboucler lors de la mise à jour du TCD
        Application.EnableEvents = False
     
        Origine = CDate(DateSerial(2011, 10, 1))
        Debut = CDate(DateSerial(Year(Range("C1")), Month(Range("C1")), 1))
     
        If Debut < Origine Then
            MsgBox "La date saisie est antérieure au début du contrat." & vbCrLf & vbCrLf _
            & "Veuillez saisir une autre date.", vbOKOnly, "Erreur de date"
            Exit Sub
        End If
     
        NbJours = Day(DateSerial(Year(Debut) + 1, Month(Debut) + 1, 0))
        Fin = CDate(DateSerial(Year(Debut) + 1, Month(Debut), NbJours))
        Range("C2").Value = Fin + 0.9999
        Debut = CLng(Range("C1"))
        Fin = CDec(Range("C2"))
        Range("A7").Group Start:=Debut, End:=Fin, Periods:=Array(False _
            , False, False, False, True, False, True)
         DebutFiltre = "<" & Left(Range("C1"), 10)
         FinFiltre = ">" & Left(Range("C2"), 10)
     
        'Ne pas afficher dans le TCD les valeurs < DebutFiltre et > Fin Filtre
        With ActiveSheet.PivotTables("TCD_Histo_Nb_Diag").PivotFields("Années")
            .PivotItems(DebutFiltre).Visible = False 'c'est la ligne qui coince
            .PivotItems(">31/01/2013").Visible = False
        End With
     
        Columns("C:N").AutoFit
        'Réactive les événements
        Application.EnableEvents = True
    Else
        Exit Sub
    End If
     
    End Sub
    Images attachées Images attachées  

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

Discussions similaires

  1. [XL-2010] TCD : Filtrer des dates dans un champ étiquette lignes ?
    Par Delphineee dans le forum Excel
    Réponses: 1
    Dernier message: 12/04/2013, 13h48
  2. [XL-2003] VBA supprimer des ligne selon la date d'une cellule
    Par Scrabblouille dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2009, 22h37
  3. Trier des lignes sur un autre champ que celui du groupe
    Par tatayoyo dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 28/01/2009, 19h37
  4. Excel - TCD - champs d ligne à colonne
    Par ticoco dans le forum Excel
    Réponses: 2
    Dernier message: 13/01/2009, 17h57
  5. TCD - masquer la liste d'un champ
    Par NATOU2 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/02/2008, 17h58

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