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 :

Filtrer TCD depuis userform [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 123
    Par défaut Filtrer TCD depuis userform
    Bonjours à tous, j’ai un userform nommé DmdExtractDon avec 2 zones de texte. Une zone nommé CmdDtDebut et l’autre nommé CmdDtFin. J’aimerais en vb filtrer entre 2 date mon tableau croisé dynamique depuis mon userform.

    J'ai rien trouver dans les tutos. Si vous avez quelque chose que je peut modifié.

    Merci

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Dans ce cas de figure, l'enregistreur de macros est souvent très utile (filtrage manuelle sur dates).
    Le code généré, est certes, sera sur-dimensionné, mais l'ossature sera visible pour adaptation.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 123
    Par défaut
    J'ai essayé ceci sur Click d'un bouton de commande de mon userform mais ca ne fonctionne pas? Pourquoi?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CmdTriDt_Click()
    Dim Debut As String, Fin As String
     
    Debut = CmdDtDebut 'zone de texte du userform 
    Fin = CmdDtFin 'zone de texe du userform
    With Sheets("TCD").PivotTables("Tableau croisé dynamique1").PivotFields("Date")
       .ClearLabelFilters
       .PivotFilters.Add Type:=xlDateBetween, Value1:=Debut, Value2:=Fin
    End With
    End Sub
    Merci

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CmdTriDt_Click()
    Dim Debut As Date, Fin As Date
     
    Debut = cdate(CmdDtDebut) ‘zone de texte du userform 
    Fin = cdate(CmdDtFin) ‘zone de texe du userform
    With Sheets("TCD").PivotTables("Tableau croisé dynamique1").PivotFields("Date")
       .ClearLabelFilters
       .PivotFilters.Add Type:=xlDateBetween, Value1:=Debut, Value2:=Fin
    End With
    End Sub

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 123
    Par défaut
    Non, toujours le même problème. La macro bug à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PivotFilters.Add Type:=xlDateBetween, Value1:=Debut, Value2:=Fin
    Merci

    J'ai oublié de vous indiquez le message d'erreur. Le message d'erreur est:

    Erreur d'exécution '1004'

    La date tapée n'est pas valide. Réessayez.
    Merci

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Essaies ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CmdTriDt_Click()
    Dim Debut As Long, Fin As Long
     
    Debut = CLng(DateValue(Me.CmdDtDebut.Value)) 'zone de texte du userform
    Fin = CLng(DateValue(Me.CmdDtFin.Value)) 'zone de texe du userform
    With Sheets("TCD").PivotTables("Tableau croisé dynamique1").PivotFields("Date")
       .ClearLabelFilters
       .PivotFilters.Add Type:=xlDateBetween, Value1:=Debut, Value2:=Fin
    End With
    Unload Me
    End Sub

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 123
    Par défaut
    Merci Mercatog, avec ton dernier poste ca ma permis de voir que mes erreurs dans le TCD.

    J'ai corrigé et ca fonctionne.

    Encor merci

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

Discussions similaires

  1. recherche date depuis userform
    Par typhoon751 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/06/2011, 17h05
  2. filtre élaboré depuis userform
    Par totopaze dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/02/2011, 23h41
  3. Contrôle de doublons depuis userform
    Par typhoon751 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/11/2010, 11h52
  4. TCD et UserForm
    Par deuboli dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/05/2010, 22h42
  5. Transfert depuis USERFORM vers fichier EXCEL
    Par janobrasil dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2008, 13h15

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