Macro filtre automatique =AUJOURDHUI + les 3 prochains jours

Excellois, Excelloise bonjour,

Cela fait plusieurs mois que je cherche sans vraiment trop chercher comment faire, mais =AUJOURDHUI() j'aimerai savoir...

Dans un tableau, j'ai entre 1500 et 2000 lignes avec date et heure dans la même case (chiffre pour date + après la virgule pour l'heure), que je dois analyser plusieurs fois par jour... mettre la date à la main devient rébarbatif à la longue dans le filtre auto, toutes ces petites cases à cocher/décocher, j'en rêve même la nuit !!

Avec cette macro, je souhaiterai donc afficher (le tri je m'en fiche) automatiquement les éléments à la date du jour + les 3 prochains jours.

Parce qu'un tableau parle plus qu'un texte, voici en PJ pour que vous compreniez mieux si je n'ai pas été clair.

13classeur3.xlsx (59.04 Ko)

Merci d'avance pour ce coup de pouce, il m'aiderait à mieux dormir très certainement.

Bonjour,

Une proposition àétudier.

Réalisée avec Power Query( natif avec Excel 2016).

La mise à jour est quotidienne et réalisée à l'ouverture du classeur.

A te relire.

Cdlt.

27p4t.xlsx (52.46 Ko)

Power Query ?

Je ne connais pas du tout.

L'idée me plairait presque. Faut-il encore que je puisse l'intégrer à mon fichier d'origine, et pouvoir changer le nombre de jour si besoin... donc il faut que je puisse le modifier.

Je n'ai rien dans les macro, j'ai cru à une macro sur l'ouverture de l'onglet mais non.

Je rentre en réunion, je regarderai après...

Re

L'idée paraissaient séduisante, mais j'ai l'impression d'être verrouiller.

Je n'arrive pas à modifier, ni à intégrer ce tableau Power Query sur ma base, je ne connais pas du tout.

Merci quand même de vous être penché sur mon cas.

Si quelqu'un, par une macro ?

Bonjour à tous

PowerQuery est intégré à Excel 2016 et plus simple à utiliser que d'écrire du code VBA.

Il suffit que dans l'onglet Données tu cliques sur A partir d'un tableau ou d'une plage pour que cela initialise une requête PowerQuery.

Regarde ensuite celle de Jean Eric ou une variante ci-jointe pour voir ce qui est ajouté.

J'ai utilisé la formule

if [Date et Horaire UTC]>=DateTime.Date(DateTime.LocalNow()) and [Date et Horaire UTC]<=Date.AddDays(DateTime.Date(DateTime.LocalNow()),3)  then 1 else 0

pour créer le critère de sélection.

13pquery-dates2.xlsx (47.94 Ko)

Re,

Bonjour,

Sais-tu me dire pour quelle raison, j'ai ce message lors de l'ouverture de ton classeur ?

Cdlt.

snip 20180502194906

RE

Bizarre, j'ouvre sans souci ce que j'ai posté sur 2010 et sur 2016.

Peut-être une sécurité particulière sur ton poste ?

Bonjour,

@ Chris,

J'ai commencé à regarder la chose !...

Je n'ai pas à priori modifié les options de Power Query, sauf le langage...

J'ai constaté une différence entre nos 2 propositions. Peux-tu m'en dire plus ?

Merci par avance.

Cdlt.

Jean-Eric

jeaneric

Chris

chris

Il suffit que dans l'onglet Données tu cliques sur A partir d'un tableau ou d'une plage pour que cela initialise une requête PowerQuery.

Ok, je viens de découvrir que je l'avais, mais ensuite...

J'ai utilisé la formule

if [Date et Horaire UTC]>=DateTime.Date(DateTime.LocalNow()) and [Date et Horaire UTC]<=Date.AddDays(DateTime.Date(DateTime.LocalNow()),3)  then 1 else 0

pour créer le critère de sélection.

Je ne connais absolument pas Power Query, je ne trouve pas là ou tu poses ta formule
capture

De plus, mon onglet final comporte beaucoup d'autres infos (mise en forme conditionnelle, formule etc...) qui ne peuvent pas être intégré dans la requête de Power Query... je désespère un peu...

Bonjour

A droite, si tu affiches les requêtes de mon fichier, tu vois la requête : clic droit, modifier et tu verras les étapes de la requête, les 2 premières étant automatiques.

C'est comme VBA : un minimum d'effort est requis...

On peut ajouter des formules à un tableau PQ ainsi que des MFC : bien respecter la logique tableau pour les formules

Sinon tu ajoutes une colonne à ta source calculant le même type de filtre que j'ai fait dans PQ et un code VBA qui réapplique le filtre, pas besoin de monter une usine...

Re

@ Chris,

J'ai constaté une différence entre nos 2 propositions. Peux-tu m'en dire plus ?

Merci par avance...

J'utilise l'add on sur 2010 qui peut expliquer. Je vais refaire sur 2016, pour voir et te dirais

Edit : whaoo c'est extrêmement bavard effectivement... j'ai utilisé ton fichier depuis 2010. Donc je ne sais si c'est coutumier de l'add on ou si l'aller retour 2016-2010 pose souci.

J'ai refait avec 2016 et remplacé mon ancienne pièce jointe dans le post en question. Cela devrait mieux passer

Bonjour,

@ Chris,

Le problème est résolu !?

Il y a peut-être des options de requête différentes entre les différentes versions de Power Query !...

Cdlt.

En farfouillant, j'ai réussi a afficher les 3 prochains jours, ou 4 ou 5 même d'ailleurs, mais quand je rajoute la journée d'aujourd'hui, tableau vide (sic), je ne comprends pas, c'est totalement une autre dimension et quelque chose que je ne connaissais pas il y a deux jours.

Je n'arrive pas non plus à "automatiser" la mise à jour automatique quand je charge l'onglet...

J'ai effectivement l'impression de monter une usine a gaz car c'est beaucoup plus long à faire que de cocher manuellement mes dates dans le filtre automatique.

Bonjour,

Que veux tu faire clairement ?

L'usine à gaz, c'est une demande mal formulée !...

Cdlt.

Nota : Pourquoi ne pas travailler avec les numéros de semaine ?

Bonjour,

Clairement, je cherche une macro que j’intégrerai à ma macro principale pour d'autres fonctions.

Je cherche, grâce au filtre automatique à n'afficher que la date du jour et les 3 ou 4 ou 2 jour suivant selon ce qui me conviendra à l'usure.

Actuellement, voici ma macro principale

Sub REFFRESH()
'
' last Macro
'

'
    Range("Tableau2[[#Headers],[Date et Horaire UTC]]").Select
' suppr Filtre
    selection.AutoFilter
' Active Filtre
    selection.AutoFilter
' Retire la couleur colonne G
    Columns("G:G").Select
    With selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
' Suppr texte colonnes des commentaires
    Range("Tableau2[[Com 1]:[Com 2]]").Select
    selection.ClearContents
' Active Filtre
    ActiveSheet.ListObjects("Tableau2").Range.AutoFilter Field:=8, Criteria1:= _
        Array("01", "01HD1C", "04", "04CLN", "COS1", "COS2", "COS3", "COS4", "COS5", "COS6", _
        "COS7", "COS8", "COS9", "COSGO", "MIXA-1", "MIXA-2", "MIXA-3", "MIXA-4", "PROD1", "PROD2", "PROD3" _
        , "PROD4", "PROD5", "PROD6", "PROD7", "PROD8", "="), Operator:=xlFilterValues
' Active groupe de couleur Colonne G
  couleurs = Array(15, 17, 24, 34, 39, 37, 1)
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("g2", [g65000].End(xlUp))
    If c <> "" Then mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  For Each c In Range("g2", [g65000].End(xlUp))
    If c <> "" Then
      nocoul = (Application.Match(c.Value, mondico.keys, 0)) Mod UBound(couleurs)
      If mondico.Item(c.Value) > 1 Then c.Interior.ColorIndex = couleurs(nocoul)
    End If
  Next c
End Sub

Comme vous pouvez le deviner, le fichier que j'ai mis a disposition dans ma publication d'origine est minimaliste, je ne voulais pas polluer le fichier Excel avec des colonnes ou des codes couleurs inutiles pour ma demande initiale.

Rechercher des sujets similaires à "macro filtre automatique aujourdhui prochains jours"