Microsoft 365 Récupérer des Dates

Electron24

XLDnaute Occasionnel
Bonsoir le Forum,

Dans un classeur, j'ai sur une première feuille (F01) toute une série de Taches à effectuer (Ici réduit)
Par souci de présentation simplifié, je souhaite sur une seconde feuille (F02) n'avoir que 5 taches présentées en partant de la date la plus proche de la date actuelle.
Est il possible de le faire par macro avec le bouton "Mise à Jour" présent sur la feuille F02 ?
D'avance Merci pour votre aide.
Cordialement
 

Pièces jointes

  • Date.xlsm
    17.8 KB · Affichages: 4

Electron24

XLDnaute Occasionnel
Je reviens vers vous car sur le classeur d'origine, j'ai une erreur . A savoir
- La tache commence sur une ligne aléatoire du tableau Tab_Evenement (mon tableau)
- Pour la date et l'heure j'ai une erreur #Nombre!
ci joint une image de mon classeur
Le tableau se nomme "Tab_Evenement"
La formule pour la tâche "Description est :
VB:
{=INDEX(Tab_Evenement[Description];PETITE.VALEUR(SI(Tab_Evenement[Description]>=AUJOURDHUI();LIGNE(Tab_Evenement[Description])-2);LIGNE()-2))}
pour la Date :
Code:
{=INDEX(Tab_Evenement[Date];PETITE.VALEUR(SI(Tab_Evenement[Date]>=AUJOURDHUI();LIGNE(Tab_Evenement[Date])-2);LIGNE()-2))}
pour l'heure :
Code:
{=INDEX(Tab_Evenement[Heure];PETITE.VALEUR(SI(Tab_Evenement[Heure]>=AUJOURDHUI();LIGNE(Tab_Evenement[Heure])-2);LIGNE()-2))}
Evénements.jpg
Fetes.jpg
 

Electron24

XLDnaute Occasionnel
Ce n'est pas une question de torchon ou de serviette, c'est comme je l'ai indiqué, le nom et les colonnes de mon tableau sur le véritable classeur. Celui que tu as vu, était un essai afin de voir comment on pouvait procéder. Les emplacement du tableau en F02 ne correspondait pas à la photo 2 ci jointe au post précédent.
Comme tu peux le voir les descriptions sont bien notés mis à part les dates injustes mais les dates et les heures sont en erreur. Donc le principe est correct pour les taches mais je ne vois pas pour les 2 autres formules.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous,

Pour O365, mettre cette formule en A3 de la feuille "F02" :
=LET(a;TRIER(FILTRE('F01'!A3:C999;'F01'!A3:A999>AUJOURDHUI());1);PRENDRE(a;5))
ou bien sans le LET :
=PRENDRE(TRIER(FILTRE('F01'!A3:C999;'F01'!A3:A999>AUJOURDHUI());1);5)
 

Pièces jointes

  • Electron24- dates proches- v1.xlsx
    12.1 KB · Affichages: 4
Dernière édition:

Electron24

XLDnaute Occasionnel
Bonjour mapomme et vgendron,
Tout d'abord pour vgendron, je tiens à m'excuser pour mon ignorance. en effet, j'ai peut etre et certainement pas tout compris ses formules. Sans explications, j'ai un mal fou à décoder. J'ai aussi par souci de ne pas faire paraitre des taches perso effectuer et charger un classeur de démonstration reproduisant la méthode de travail sans tenir compte des colonnes et lignes du classeur original, voici pourquoi j'y ai adjoints des photos sans faire le rapprochement avec "Photoshp" c'est uniquement pour que tu puisses voir l'emplacement réel des cellules. Encore une fois mille excuses pour mes erreurs.
Pour mapomme, j'ai ouvert le classeur, mais je ne vois pas du tout de formules dans la F02 cellules de la colonne B & C Je ne comprend pas du tout le fonctionnement.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,
Pour mapomme, j'ai ouvert le classeur, mais je ne vois pas du tout de formules dans la F02 cellules de la colonne B & C Je ne comprend pas du tout le fonctionnement.
J'avais rappelé que ma solution n'est valable que pour Office 365.

Il n'y a qu'une seule formule (dans la cellule A3).

Cette formule, à elle toute seule, remplit toutes les cellules de la plage depuis A3 jusqu'à C7. C'est une formule "dynamique".

Si vous vous placez dans une des cellules de A3:C7 (autre que A3), vous verrez dans la barre de formule la même formule qu'en A3. Mais cette formule sera en police de couleur grise. Vous ne pouvez pas la modifier. La seule formule modifiable est celle de la cellule A3.

Formule en A3 : =LET(a;TRIER(FILTRE('F01'!A3:C999;'F01'!A3:A999>AUJOURDHUI());1);PRENDRE(a;5))
On considère la plage des données sources : 'F01'!A3:C999. Cette source comprend bien les 3 colonnes sources.
On a pris jusqu'à la ligne 999 pour tenir compte de l'augmentation éventuelle du tableau.
Ensuite on filtre ce tableau en ne gardant que les lignes dont la date est supérieure à la date du jour soit la condition : 'F01'!A3:A999>AUJOURDHUI() ce qui nous donne la formule pour le filtrage :
FILTRE('F01'!A3:C999;'F01'!A3:A999>AUJOURDHUI())

Puis on trie les lignes qui ont été filtrées selon la date en ordre croissant. Les dates de ces lignes sont en première colonne qui est la colonne 1 et la formule aboutit à :
TRIER(FILTRE('F01'!A3:C999;'F01'!A3:A999>AUJOURDHUI()) ;1)

A ce stade, de la plage source, il ne reste plus que les lignes dont la date est > à aujourd'hui et ces lignes sont triées depuis la date la plus récente à la date la plus éloignée. Ce qu'on peut visualiser par le tableau "virtuel" :
1724231591825.png


Uniquement pour une raison de lisibilité, on va appeler ce résultat intermédiaire a et de ce tableau (nommé a à l'aide de la commande Let), on ne va retenir ( avec la fonction PRENDRE(...) ) que les 5 premières lignes de ce tableau intermédiaire a, soit la formule finale :
=LET(a;TRIER(FILTRE('F01'!A3:C999;'F01'!A3:A999>AUJOURDHUI());1);PRENDRE(a;5))

Cette formule en A2 extrait bien du tableau source les 5 lignes (avec les trois colonnes) ayant la date la plus récente et supérieure à aujourd'hui.

nota : on peut se dispenser de mettre en variable a le tableau intermédiaire :
=PRENDRE(TRIER(FILTRE('F01'!A3:C999;'F01'!A3:A999>AUJOURDHUI());1);5)

N'hésitez pas à ma demander des précisions...
 
Dernière édition:

Discussions similaires

Réponses
12
Affichages
219

Statistiques des forums

Discussions
314 717
Messages
2 112 168
Membres
111 448
dernier inscrit
ayment