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-E] Utiliser une date dans un filtre saisie au prealable dans une InputBox


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut [VBA-E] Utiliser une date dans un filtre saisie au prealable dans une InputBox
    Bonjour,

    voila, j'ai une macro qui contient a un moment un filtre sur une date.
    Etant donne que cette date change presque toutes les deux semaines il m'a ete demande de creer une boite de dialogue avec un masque de saisie pour que l'utilisateur puisse saisir la date a laquelle il souhaite que le filtre commence.

    J'ai creer le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub InputBoxx()
    Dim StartDate As Date
    StartDate = Application.InputBox(prompt:="Choose the start date for SAP creation Date")
    ' On enleve tout eventuel filtre
    ActiveSheet.AutoFilterMode = False
    Rows("1:1").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:>=StartDate
    End Sub

    J'ai un probleme au niveau du superieur ou egal et puis je n'ai pas trouve en cherchant sur le net la possibilite de faire sous Excel un masque facon Access.
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Avec l'enregistreur de macro, j'obtiens plutot qqch dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFilter Field:=1, Criteria1:=">=" & StartDate

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu peux tester ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFilter field:=1, Criteria1:=">" & StartDate, Operator:=xlor, Criteria2:="=" & StartDate
    Je crois que dans l'aide l'explication donnée est assez précise (...)
    A+

    Edit
    J'étais parti d'un code que j'avais... et avais laissé traîner des affaires... J'ai corrigé

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut
    Merci bien cela fonctionne,
    j'avais pas pense a mettre le signe superieur avec des guillemets comme une chaine de caractere et a concatener.
    Si vous avez une idee pour forcer lutiliateur a saisir sous format date ou bien que la macro puisse reperer des lors que ce n'est pas le cas.

    Merci d'avance.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsDate(StartDate) Then Msgbox "Ce n'est pas une date"

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    ... ou dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Do
    StartDate = Application.InputBox(prompt:="Choose the start date for SAP creation Date")
    While not isdate(StartDate)

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut
    Cela fonctionne merci bien

  8. #8
    Membre à l'essai
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Février 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Février 2016
    Messages : 34
    Points : 16
    Points
    16
    Par défaut Filtrer à partir d'une date
    Bonjour,

    Je rouvre une ancienne conversation. j'ai voulu me servir de ce code pour filtrer à partir d'une date saisie dans la boite de dialogue. Mais dans mon exemple en PJ si je saisie par exemple 20/04/2018 il m'affiche uniquement les ligne du 20/04 et pas les dates postérieurs.
    Avez-vous une idée doù peut provenir le problème svp?
    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
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim StartDate As Date
    StartDate = Application.InputBox(prompt:="Date à partir de laquelle vous souhaitez traiter les rejets")
    If Not IsDate(StartDate) Then MsgBox "Ce n'est pas une date"
    ' On enleve tout eventuel filtre
    ActiveSheet.AutoFilterMode = False
    Rows("1:1").Select
    Selection.AutoFilter
    Selection.AutoFilter field:=3, Criteria1:=">" & StartDate, Operator:=xlOr, Criteria2:="=" & StartDate
     
    '
    End Sub
    Fichiers attachés Fichiers attachés

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFilter field:=3, Criteria1:=">" & clng(StartDate), Operator:=xlOr, Criteria2:="=" & clng(StartDate)
    mais je vois pas trop l'interet de filtrer la colonn 3 de une seul ligne puisque ta plage a filtre est "rows("1:1")"
    c'est peut etre ca ton soucis
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim d 
     
    D=Application.InputBox(Prompt:="Date à partir de laquelle vous souhaitez traiter les rejets", Type:=8)
    If not d then msgbox "Annulation Ok!":exit sub
    Selection.AutoFilter field:=3, Criteria1:=">" & format(d,"yyyy-mm-dd") , Operator:=xlOr, Criteria2:="=" & format(d,"yyyy-mm-dd")
    Dernière modification par Invité ; 27/04/2018 à 08h07.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Février 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Février 2016
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    J'ai du coup utilisé ce code mais cette fois cela m'affiche les date ultérieur au 20 avril (date saisie dans l'input box) mais pas la date du 20...il ne prend qu'un seul critère en compte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim StartDate As Date
    StartDate = Application.InputBox(prompt:="Date à partir de laquelle vous souhaitez traiter les rejets")
    If Not IsDate(StartDate) Then MsgBox "Ce n'est pas une date"
    ' On enleve tout eventuel filtre
    ActiveSheet.AutoFilterMode = False
    Selection.AutoFilter field:=3, Criteria1:=">" & clng(StartDate), Operator:=xlOr, Criteria2:="=" & clng(StartDate)
    @dysorthographie j'ai essayé votre code mais cela ne correspond pas non plus au résultat attendu

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    si tu veux tout ce qui est apres startdate evite les select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim startdate
    startdate=cdate("20/04/2018")
    set maplage=sheets("toto").range(A1:F100")
    'filtre la colonne 3 de la plage 
    maplage.AutoFilter field:=3, Criteria1:=">=" & clng(StartDate)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre à l'essai
    Femme Profil pro
    Architecte réseau
    Inscrit en
    Février 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Février 2016
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    merci c'est bien cela qui posait problème top!

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

Discussions similaires

  1. [XL-2010] automatiser une date de modif d'un fichier word dans Excel
    Par chevalpm dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2010, 09h00
  2. Réponses: 2
    Dernier message: 24/10/2008, 15h50
  3. Filtre sur l'année d'une Date
    Par souminet dans le forum Paradox
    Réponses: 6
    Dernier message: 12/05/2008, 16h34
  4. Réponses: 6
    Dernier message: 25/09/2006, 14h51

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