VBA Excel: sélection de dates glissantes d'un tableau
Résolu
Lena_tkd
Messages postés
1
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je travaille sous Excel 2013 et dispose d'un tableau avec des dates en colonne A et des noms en colonne B: https://www.cjoint.com/c/IGqjkE6reID
En D1, j'ai mis une formule qui indique la date glissante à 31 jours (15/06/2019 si on est le 16/07/2019, 10/03/2019 si on est le 11/04/2019...).
J'aimerais savoir quel code VBA pourrait me permettre de sélectionner la partie du tableau (dates et noms) de la date la plus ancienne date à celle inférieure à la date figurant en D1, idéalement en intégrant la formule située en D1 dans un code pour libérer la cellule D1; autrement dit, j'aimerais pouvoir sélectionner le tableau de la première ligne à la dernière contenant les infos du 14/06/2019 si en D1 apparaît la date "15/06/2019"; quelqu'un aurait-il une piste?? Toutes les idées sont bonnes à prendre!
Je vous en remercie par avance!
Je travaille sous Excel 2013 et dispose d'un tableau avec des dates en colonne A et des noms en colonne B: https://www.cjoint.com/c/IGqjkE6reID
En D1, j'ai mis une formule qui indique la date glissante à 31 jours (15/06/2019 si on est le 16/07/2019, 10/03/2019 si on est le 11/04/2019...).
J'aimerais savoir quel code VBA pourrait me permettre de sélectionner la partie du tableau (dates et noms) de la date la plus ancienne date à celle inférieure à la date figurant en D1, idéalement en intégrant la formule située en D1 dans un code pour libérer la cellule D1; autrement dit, j'aimerais pouvoir sélectionner le tableau de la première ligne à la dernière contenant les infos du 14/06/2019 si en D1 apparaît la date "15/06/2019"; quelqu'un aurait-il une piste?? Toutes les idées sont bonnes à prendre!
Je vous en remercie par avance!
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, je suggère ceci:Option Explicit Sub lena() Dim dt As Date, cejour As Date, nlig As Long, fl As Worksheet Set fl = ActiveSheet cejour = Date dt = DateSerial(Year(cejour), Month(cejour) - 1, Day(cejour - 1)) nlig = 1 Do While fl.Cells(nlig, 1) < dt And IsDate(fl.Cells(nlig, 1)) nlig = nlig + 1 Loop If nlig < 2 Then nlig = 2 End If fl.Range(fl.Cells(1, 1), fl.Cells(nlig - 1, 2)).Select End Sub