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 :

Sélection d'items dans TCD


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Amateur de programmation
    Inscrit en
    Février 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Amateur de programmation

    Informations forums :
    Inscription : Février 2015
    Messages : 21
    Par défaut Sélection d'items dans TCD
    Bonjour,

    Le code suivant me permet d'ouvrir un UserForm qui me permet de sélectionner :
    - le nom d'un salarié,
    - une date de début
    - une date de fin

    La code modifie un TCD qui affiche les données sélectionnées dans le UserForm.

    Tout fonctionne bien sauf que la première date de mes données n'est jamais sélectionnée.
    Exemple : si je veux afficher les saisies journalières pour la période du 12/02/2015 au 15/02/2015 de ma table de données, je code me sélectionne du 12/02/2015 au 15/02/2015. Il exclue Systématiquement la première date.

    Avez-vous une piste de travail à me donner?

    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
    Sheets("Graphique Salarié").Select
    ActiveWorkbook.RefreshAll
     
    'ActiveSheet.PivotTables("Tableau croisé dynamique3").ManualUpdate = True
    'ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Date").ShowAllItems = True
     
    DD = Format(Me.DTPicker1, "dd/mm/yyyy")
    DF = Format(Me.DTPicker2, "dd/mm/yyyy")
     
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Date"). _
            ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Date"). _
            ShowAllItems = False
     
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Date"). _
            CurrentPage = "(All)"
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Date")
            ActiveSheet.PivotTables("Tableau croisé dynamique3").NullString = "(Blank)"
            ActiveSheet.PivotTables("Tableau croisé dynamique3").DisplayNullString = False
     
            For Each Pi In .PivotItems
                Pi.Name = Pi.SourceNameStandard
                MsgBox Pi.Name
                If Format(Pi.Name, "dd/mm/yyyy") >= DD And Format(Pi.Name, "dd/mm/yyyy") <= DF Then .PivotItems(Pi.Name).Visible = True Else .PivotItems(Pi.Name).Visible = False
            Next Pi
     
        End With
     
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Salarié"). _
            CurrentPage = nomsal
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Tâches").ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Tâches").PivotFilters.Add Type:=xlCaptionDoesNotEqual, Value1:="(vide)"
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotCache.Refresh
     
    Range("C10").Activate
     
    MenuGraphique.Hide
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Pourquoi utiliser des chaînes de caractères pour les dates ?
    La comparaison des chaînes de caractères (< >) ne se fait probablement pas comme tu le souhaites.
    Essaie en utilisant des variables Date pour voir si ça fait une différence.

  3. #3
    Membre averti
    Homme Profil pro
    Amateur de programmation
    Inscrit en
    Février 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Amateur de programmation

    Informations forums :
    Inscription : Février 2015
    Messages : 21
    Par défaut
    Heu, je crois ne pas bien comprendre comment faire pour tester. Tu peux m'aider un peux plus clairement ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tu mets ceci
    DD = Format(Me.DTPicker1, "dd/mm/yyyy")
    Donc, DD est une String avec des guillemets autour

    Si tu déclares tes variables en Date il n'y aura pas ces guillemets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim DD as Date
    DD = Me.DTPicker1.Value
    Il y a une différence entre 21/02/2015 et "21/02/2015"

    Si tu écris des valeurs au format texte dans une colonne de 1 à 10, le tri te retournera ceci
    1
    10
    2
    3
    4
    5
    6
    7
    8
    9

    10 est alors plus petit que 2...

  5. #5
    Membre averti
    Homme Profil pro
    Amateur de programmation
    Inscrit en
    Février 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Amateur de programmation

    Informations forums :
    Inscription : Février 2015
    Messages : 21
    Par défaut
    Ok je comprend mieux. Mais, j'ai essayé comme tu as dis et cela fait exactement la même chose. Toujours pas possible de sélectionner la première date...
    Un truc de fou !

    J'ai aussi une erreur qui s'affiche quand je sélectionne une date qui n'est pas dans ma table de données.
    Erreur d'exécution 1004 : Impossible de définir la propriété Visible de la classe PivoItem
    L'erreur se produit lors de l'exécution de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Pi.Name >= DD And Pi.Name <= DF Then .PivotItems(Pi.Name).Visible = True Else .PivotItems(Pi.Name).Visible = False

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    C'est possible que ce soit parce qu'il n'y a aucune valeur du filtre sélectionnée.
    Les filtres d'un TCD doivent contenir au moins une valeur sélectionnée sans quoi... erreur...

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

Discussions similaires

  1. Sélection d'items dans QGraphicsScene
    Par Christophe dans le forum Débuter
    Réponses: 4
    Dernier message: 11/09/2013, 19h58
  2. Réponses: 6
    Dernier message: 26/08/2009, 12h14
  3. Sélection d'un Item dans un ComboBox
    Par stephane.julien dans le forum C#
    Réponses: 5
    Dernier message: 25/10/2007, 14h33
  4. Problème de sélection d'un item dans une CListCtrl
    Par PetitPapaNoël dans le forum MFC
    Réponses: 9
    Dernier message: 01/08/2007, 14h51
  5. sélection d'un item dans syslistview32
    Par devmat dans le forum MFC
    Réponses: 2
    Dernier message: 06/10/2005, 14h19

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