Macro - Détection de l'année d'une date
Résolu
Xenos1705
Messages postés
97
Statut
Membre
-
Xenos1705 Messages postés 97 Statut Membre -
Xenos1705 Messages postés 97 Statut Membre -
Bonjour à tous,
J'ai le code suivant:
Ce code me permet de filtrer une colonne en affichant toutes les lignes avec une date antérieure au 01.01.2016.
Ce que je souhaite, via macro, c'est de pouvoir filtrer les données et de ne retenir que tout ce qui est antérieur au 01.01 de l'année en cours. J'aimerais éviter de renseigner l'année afin de m'éviter d'aller modifier ma macro en début de chaque nouvelle année. En résumé, je souhaiterait détecter l'année en cours.
D'avance merci pour votre aide.
Xenos
J'ai le code suivant:
Selection.AutoFilter Field:=2, Criteria1:="<=" & CDbl(CDate("01/01/2016"))
Range("A2:A" & Range("A65536").End(xlUp).Row).SpecialCells(xlVisible).EntireRow.Select
Selection.Delete
Selection.AutoFilter Field:=2
Ce code me permet de filtrer une colonne en affichant toutes les lignes avec une date antérieure au 01.01.2016.
Ce que je souhaite, via macro, c'est de pouvoir filtrer les données et de ne retenir que tout ce qui est antérieur au 01.01 de l'année en cours. J'aimerais éviter de renseigner l'année afin de m'éviter d'aller modifier ma macro en début de chaque nouvelle année. En résumé, je souhaiterait détecter l'année en cours.
D'avance merci pour votre aide.
Xenos
A voir également:
- Macro - Détection de l'année d'une date
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Touslesdrivers detection - Télécharger - Pilotes & Matériel
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Airpods 3 date de sortie - Guide
5 réponses
Bonjour,
essaye comme cela
Year(Now)
pour avoir l'année en cellule B5
Private Sub CommandButton1_Click()
[B5] = Year(Now)
End Sub
mais pour l'adapter à ton code il serait bon d'avoir un bout de ton fichier et code existant pour ne pas induire en erreur
A+
Mike-31
Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
essaye comme cela
Year(Now)
pour avoir l'année en cellule B5
Private Sub CommandButton1_Click()
[B5] = Year(Now)
End Sub
mais pour l'adapter à ton code il serait bon d'avoir un bout de ton fichier et code existant pour ne pas induire en erreur
A+
Mike-31
Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Hello,
Merci pour ton message...
Le code fonctionne mais ce n'est pas encore le résultat que je souhaiterais...
Pour des raisons de confidentialité, je suis dans l'impossibilité de te transmettre le fichier en question...
Si jamais tu as bout de mon code dans mon post initial.
Si tu veux j'ai une BDD avec plus de 8'000 lignes, et ce que je souhaite c'est supprimer toutes les lignes contenant une date antérieur au 01.01 de l'année en cours.
Actuellement, je filtre les données en renseignant la date à la main comme ci-dessous:
Je souhaiterai adapter ce code pour éviter chaque année d'aller corriger ma macro...
Encore merci pour ta réponse et ton aide...
Xenos
Merci pour ton message...
Le code fonctionne mais ce n'est pas encore le résultat que je souhaiterais...
Pour des raisons de confidentialité, je suis dans l'impossibilité de te transmettre le fichier en question...
Si jamais tu as bout de mon code dans mon post initial.
Si tu veux j'ai une BDD avec plus de 8'000 lignes, et ce que je souhaite c'est supprimer toutes les lignes contenant une date antérieur au 01.01 de l'année en cours.
Actuellement, je filtre les données en renseignant la date à la main comme ci-dessous:
Selection.AutoFilter Field:=2, Criteria1:="<=" & CDbl(CDate("01/01/2016"))
Je souhaiterai adapter ce code pour éviter chaque année d'aller corriger ma macro...
Encore merci pour ta réponse et ton aide...
Xenos
Hello Gyrus,
J'ai eu un petit espoir en essayant ton code mais malheureusement celui-ci ne fonctionne pas.
Le code a bien filtré la colonne mais n'a retenu aucune donnée.
Aucune case n'est sélectionner dans les options de filtrage.
Aurais-tu une autre idée de comment pouvoir rédiger le code?
D'avance merci...
A+
Xenos
J'ai eu un petit espoir en essayant ton code mais malheureusement celui-ci ne fonctionne pas.
Le code a bien filtré la colonne mais n'a retenu aucune donnée.
Aucune case n'est sélectionner dans les options de filtrage.
Aurais-tu une autre idée de comment pouvoir rédiger le code?
D'avance merci...
A+
Xenos
Et pourtant, elle tourne !
Voici un fichier exemple (non confidentiel ...)
https://www.cjoint.com/c/FIEiCz6APSN
Si le filtre ne s'applique pas, c'est que ton fichier a une spécificité que j'ignore.
A+
Voici un fichier exemple (non confidentiel ...)
https://www.cjoint.com/c/FIEiCz6APSN
Si le filtre ne s'applique pas, c'est que ton fichier a une spécificité que j'ignore.
A+
Hello,
J'ai pensé que c'était dû au fait que les données proviennent d'un autre fichier mais non car j'ai pris un fichier excel vierge, j'ai fait un exemple avec trois colonnes, exécuter ta macro et le résultat est le même, il filtre les données mais ne retiens rien, aucune case coché dans les critères.
Est-ce que ce serait du au fait que mes dates sont au format: 01.01.2016?
J'ai pensé que c'était dû au fait que les données proviennent d'un autre fichier mais non car j'ai pris un fichier excel vierge, j'ai fait un exemple avec trois colonnes, exécuter ta macro et le résultat est le même, il filtre les données mais ne retiens rien, aucune case coché dans les critères.
Est-ce que ce serait du au fait que mes dates sont au format: 01.01.2016?
Bonjour
peux être comme ca
A+
Maurice
peux être comme ca
Sub Test() Dim An As Long An = Year(Now) Columns("A:E").Select Selection.AutoFilter field:=2, _ Criteria1:=">=" & "1/1/" & An, Operator:=xlAnd, Criteria2:="<=" & "12/31/" & An End Sub
A+
Maurice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le problème avec cette solution c'est que l'on doit malgré tout renseigner une date entre parenthèses...
Y-aurait-il pas un moyen de dire à la macro de détecter l'année en cours en se basant sur l'horloge du système d'exploitation?
D'avance merci.
Xenos
Date est une fonction vba qui renvoie la date actuelle
Cdlmnt
Je ne fais que ca depuis ce matin: Tester
tu as testé ?
eric