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 :

filtre en fonction du résultat date(aujourdhui)-date(dernière visite mensuelle)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut filtre en fonction du résultat date(aujourdhui)-date(dernière visite mensuelle)
    Bonjour,
    Voilà mon souci!
    Je souhaiterai faire une macro qui me filtre ma BDD en fontion du résultat de la Date(d'aujourdhui) - la Date qui figure dans ma colonne (Dernière visite mensuelle)!
    Je voudrais que seuls les appareils, dont la dernière visite date d'y à plus d'un an , s'affiche!
    Voilà le code que j'ai mis pour l'instant mais cela ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Bouton1051_QuandClic()
     
        date_du_jour = Format(Now, "dd/mm/yyyy")
     
         ThisWorkbook.Sheets("BDD").Select
        Sheets("BDD").Range("A:P").Sort Key1:=Sheets("BDD").Range("D2"), Order1:=xlAscending, Key2:=Sheets("BDD").Range("F2") _
    , Order2:=xlAscending, Header:=xlYes
        Selection.AutoFilter Field:=9, Criteria1:=((date_du_jour - Range("N2")) > 365)    
    End Sub

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    en supposant que la date est en colonne N :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Bouton1051_QuandClic()
     
         ThisWorkbook.Sheets("BDD").Range("A:P").Sort Key1:=Sheets("BDD").Range("D2"), _
         Order1:=xlAscending, Key2:=Sheets("BDD").Range("F2") _
          , Order2:=xlAscending, Header:=xlYes
     
        ThisWorkbook.Sheets("BDD").Range("A1").CurrentRegion.AutoFilter Field:=14, Criteria1:= _
        "<= " & CLng(DateSerial(Year(Now) - 1, Month(Now), Day(Now))), Operator:=xlAnd
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Bonjour bbil,
    Merci pour ta réponse cela fonctionne très bien le seul souci que je rencontre c'est que dans certaines cellules il n'y a aucune date étant donné que c'est une nouvelle et que l'on a pas l'historique de tout et les matériels dont il n'y a pas de date ne sont pas pris en compte dans avec cette macro alors que lorsqu'il n'y a pas de date je les considère comme à visiter!
    Merci d'avance!

    NB: Eh aussi pourrais tu m'expliquer brièvement ton code car je ne comprend pas tout en fait! Merci beaucoup

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Peu-être que la solution la plus simple est de "remplir" les dates vides par une date particulière style "01/01/1990" ...

    pour l'explication je suppose qu'il s'agit de ce morceau de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<= " & CLng(DateSerial(Year(Now) - 1, Month(Now), Day(Now)))
    ici calcul de la date actuelle - 1 an .. Now et la date actuelle les fonctions Day,Month et Year permettent d'en extraire les composantes Jour , Mois , Annnée ..
    DateSerial : permet à partir de ces composantes de créer une date au format date d'excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateSerial(Year(Now) - 1, Month(Now), Day(Now))
    Ensuite le Clng, transforme cette date au format long ce qui évite qu'Excel prennent cela pour une chaine de caractères car sous forme de chaine de caractères les tests sur les ces chaines ce font celon l'ordre alphabétique ce qui nous fait perdre l'ordre des dates .. (par exemple sous forme de chaine l'on as "10/10/2011" < "2/10/2011" ),

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    Merci beaucoup pour ces explications c'est beaucoup plus clair maintenant!
    Par contre le soucis est que dans la date j'ai une liste déroulante et je ne peux pas mettre ce que je veux comme date je ne peux pas revenir avant 01/07/2010 à cause de notre historique on a pas avant cette date donc on ne peut pas mettre une date inférieur à celle ci
    Merci pour ta réponse

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    alors il faut rajouter un second critère avec colonne date vide un Ou...

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

Discussions similaires

  1. fonction permettant de retourner la date système
    Par casho dans le forum Access
    Réponses: 2
    Dernier message: 18/09/2006, 10h06
  2. [SQL] selection en fonction d'un comparaison de date
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/09/2006, 23h38
  3. fonction javascript qui rassemble une date
    Par Dizystorm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2004, 10h03
  4. Fonction utilisateur qui renvoie la date du jour
    Par falcon dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/12/2004, 11h03
  5. Réponses: 7
    Dernier message: 07/12/2004, 10h18

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