Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA - recherche du jour précédent Cells.Find(What:=Date - 1,...

7 réponses
Avatar
twinley
Bonjour,

J'ai dans la colA la date du jour sur plusieurs lignes.
Puis en descendant j'ai la date d'hier sur plusieurs lignes
et ainsi de suite.
J'utilise cette recherche pour trouver la ligne du jour précédent avec
Date - 1

Sheets("Graph1").Range("A1").Select
' trouve le jour précédent
Cells.Find(What:=Date - 1, After:=ActiveCell, LookIn:=xlValues, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext).Activate

C'est une pure merveille sous XL 2000, d'autant plus que si aujourd'hui
c'est le 14, et que je n'ai pas de journée d'hier le 13, il trouve bien le
cisaillement 14 à 12.

Mais en XL 2003, il chipote et se plante quand il manque un jour. Date -1
ne lui plait pas.

J'aimerai éviter une boucle qui trouverait la première date différente
d'aujourd'hui.
Si vous avez une idée... sinon il faudra se rabattre sur la boucle, mais je
préfère poser la question avant.

14/10/2004
14/10/2004
14/10/2004
14/10/2004
14/10/2004
14/10/2004
14/10/2004
14/10/2004
12/10/2004 <----c'est la ligne à trouver
12/10/2004
12/10/2004
12/10/2004
Merci pour votre aide
--
à+twinley

7 réponses

Avatar
AV
Avec ta plage de dates nommée "plagE", pour avoir la 1° ligne de la date avant
celle du jour :

'Sur une seule ligne !
MsgBox
[match(large(if(mmult((plagE=transpose(plagE))*(row(plagE)>=transpose(row(plagE)
)),row(plagE)^0)=1,plagE),2),plagE,0)]

AV
Avatar
twinley
Aaargh...
là, il faut faire confiance.

J'ai du mal à placé ta formule. J'ai essayé en lieu et place de date -1, en
autonome ...mais tout est rouge.
Ça compile pas.

Je la met où cette merveille ?

Merci pour ton aide
--
à+twinley
"AV" a écrit dans le message de
news:
Avec ta plage de dates nommée "plagE", pour avoir la 1° ligne de la date
avant

celle du jour :

'Sur une seule ligne !
MsgBox

[match(large(if(mmult((plagE=transpose(plagE))*(row(plagE)>=transpose(row(pl

agE)
)),row(plagE)^0)=1,plagE),2),plagE,0)]

AV




Avatar
AV
Regarde l'exemple :

http://cjoint.com/?kok72ry1ZL

AV
Avatar
twinley
super
je l'avais mal placé dans ma sub.

Merci beaucoup

--
à+twinley
"AV" a écrit dans le message de
news:%
Regarde l'exemple :

http://cjoint.com/?kok72ry1ZL

AV




Avatar
Daniel.M
Salut Alain,

Avec ta plage de dates nommée "plagE", pour avoir la 1° ligne de la date avant
celle du jour :


Peut-être celle-là, aussi:

MsgBox [match(TRUE,plagE<TODAY(),0)]

Salutations,

Daniel M.

Avatar
twinley
Bonjour,

Ah ben là, si on m'avait dit que quelqu'un ferait plus cours que AV, je ne
l'aurions pas crû.

En plus celle là je la comprend, même si je ne l'aurais jamais inventé.

Merci à vous deux pour la belle joute du jour...recherché.
--
à+twinley
"Daniel.M" a écrit dans le message de
news:
Salut Alain,

Avec ta plage de dates nommée "plagE", pour avoir la 1° ligne de la date
avant


celle du jour :


Peut-être celle-là, aussi:

MsgBox [match(TRUE,plagE<TODAY(),0)]

Salutations,

Daniel M.





Avatar
twinley
cours et court, au choix : le lecteur attentif aura rectifié de lui-même

--
à+twinley
"twinley" <twinleym(at)hotmail.com> a écrit dans le message de
news:
Bonjour,

Ah ben là, si on m'avait dit que quelqu'un ferait plus cours que AV, je ne
l'aurions pas crû.

En plus celle là je la comprend, même si je ne l'aurais jamais inventé.

Merci à vous deux pour la belle joute du jour...recherché.
--
à+twinley
"Daniel.M" a écrit dans le message de
news:
Salut Alain,

Avec ta plage de dates nommée "plagE", pour avoir la 1° ligne de la
date



avant
celle du jour :


Peut-être celle-là, aussi:

MsgBox [match(TRUE,plagE<TODAY(),0)]

Salutations,

Daniel M.