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 Comment filtrer sur moins de 30 jours ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 128
    Par défaut VBA Comment filtrer sur moins de 30 jours ?
    bonjour
    Je chercher à filtrer la colonne n°24 sur plus de 30 jours mais j'arrive pas !
    Pensez-vous que je dois changer dans mes DIM ( remplacer string par autre chose ? )
    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
     
    Sub Macro16()
    '
    ' Macro16 du 21 05 2014 14h10 *** TESTS ***
     
    Dim Wb As Workbook
    Dim Lastline As Integer
    Dim DateJourUS As String
    Dim DateKPI09 As String
    DateJourUS = Format(Now, "m/d/yyyy")
    DateKPI09 = DateJourUS - 30
       '
       ' Ouvrir la feuille "Essai.xlsx"
       '
       Set Wb = ActiveWorkbook
       Workbooks.Open Filename:= _
       Wb.Path & "\Essai.xlsx"
       Sheets("Feuil1").Select
       Range("B2").Select
       Lastline = Range("B2").End(xlDown).Row
       Selection.AutoFilter
       ' Field = 24 = LAST SCAN DATE
        ActiveSheet.Range("$A$1:$AK$" & Lastline).AutoFilter Field:=24, Criteria1:= _
        "<=" & DateJourKPI09, Operator:=xlAnd, Criteria2:="<>"
     
        End Sub
    Merci et bonne journée !

  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,

    Si ta date US n'est pas reconnue comme une date, mais seulement comme du texte (As String), tu ne pourras pas faire de calculs sur cette date.
    Tu pourrais alors transformer la date inscrite au format texte (ou non reconnue comme date) en format Date dans une autre colonne et là, tu pourras l'utiliser comme date.
    Regarde du côté de Left (Gauche), Mid (Stxt), Right (Droite) et DateValue (DateVal)
    Entre parenthèses, ce sont les formules Excel, autrement les commandes VBA.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 128
    Par défaut
    C'est resolu avec DateAdd("d", -90, .....)
    par exemple pour avoir la liste des moins de 90 jours ( en colonne 24 ) par rapport à la date d'aujourd hui
    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
     
    Sub Macro16()
    '
    ' Macro16 du 21 05 2014 14h10 *** TESTS ***
    ' pour corriger le KPI09
    '
    Dim Wb As Workbook
    Dim Lastline As Integer
    Dim Date1 As Date
    Dim DateKPI09 As String
    Dim DatelimiteKPI09 As String
    Date1 = Date
    DateKPI09 = Format(Date1, "m/d/yyyy")
    MsgBox " DateKPI09 = " & DateKPI09
    DatelimiteKPI09 = DateAdd("d", -90, DateKPI09)
    DatelimiteKPI09 = Format(DatelimiteKPI09, "m/d/yyyy")
    MsgBox " DatelimiteKPI09 = " & DatelimiteKPI09
       '
       ' Ouvrir la feuille "Essai.xlsx"
       '
       Set Wb = ActiveWorkbook
       Workbooks.Open Filename:= _
       Wb.Path & "\Essai.xlsx"
       Sheets("Feuil1").Select
       Range("B2").Select
       Lastline = Range("B2").End(xlDown).Row
       Selection.AutoFilter
       ' Field = 24 = LAST SCAN DATE
        ActiveSheet.Range("$A$1:$AK$" & Lastline).AutoFilter Field:=24, Criteria1:= _
        ">=" & DatelimiteKPI09, Operator:=xlAnd, Criteria2:="<>"
        End Sub

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

Discussions similaires

  1. [CR XI] Comment filtrer sur une partie d'une texte ?
    Par juju05 dans le forum Formules
    Réponses: 1
    Dernier message: 05/08/2013, 11h48
  2. Réponses: 7
    Dernier message: 09/10/2008, 16h18
  3. [VBA]Comment insérer automatiquement la date du jour
    Par DamKre dans le forum VBA Access
    Réponses: 2
    Dernier message: 03/05/2007, 08h14
  4. comment Filtrer sur la date
    Par pierrot67 dans le forum Bases de données
    Réponses: 11
    Dernier message: 27/04/2007, 13h20
  5. excel VBA comment recopier sur plusieurs feuilles
    Par floflo2006 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2005, 16h56

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