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

Date du jour en haut

6 réponses
Avatar
Pierre.M
Bonsoir tous,

j'ai cree un planning. Les dates sont en colonne A et les 5 premiers
lignes sont figees pour conserver les en-tetes visibles.

Comment faire pour qu'a l'ouverture du classeur la ligne contenant la
date du jour (si celle-ci figure dans le planning ) ou la date la plus
proche suivant la date du jour (si elle n'y figure pas) soit juste sous
le volet (soit en 5eme ligne)?

Je precise qu'il peut y avoir plusieurs lignes successives avec la meme
date, il faut alors que ce soit la premiere de ces lignes qui se place
"en-haut a gauche". Il peut aussi y avoir des cellules vides en colonne
A.

Merci a tous pour vos idees et bonne fin de soiree.

Pierre.M

6 réponses

Avatar
isabelle
bonjour Pierre,

copie cette macro sur la page code de ThisWorkBook

Private Sub Workbook_Open()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,0)")
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End Sub

isabelle


Bonsoir tous,

j'ai cree un planning. Les dates sont en colonne A et les 5 premiers
lignes sont figees pour conserver les en-tetes visibles.

Comment faire pour qu'a l'ouverture du classeur la ligne contenant la
date du jour (si celle-ci figure dans le planning ) ou la date la plus
proche suivant la date du jour (si elle n'y figure pas) soit juste sous
le volet (soit en 5eme ligne)?

Je precise qu'il peut y avoir plusieurs lignes successives avec la meme
date, il faut alors que ce soit la premiere de ces lignes qui se place
"en-haut a gauche". Il peut aussi y avoir des cellules vides en colonne A.

Merci a tous pour vos idees et bonne fin de soiree.

Pierre.M



Avatar
Pierre.M
Merci beaucoup Isabelle pour t'etre penchee sur mon probleme.
Ta macro fonctionne tres bien quand la date du jour figure dans le
tableau (01/04/07, 05/04/07, 10/04/07 -> 05/04/07).
Par contre si la date du jour n'y est pas c'est la date qui precede
directement celle du jour qui se retrouve en haut (01/04/07, 03/04/07,
10/04/07 -> 03/04/07), et non la date qui suit (01/04/07, 03/04/07,
10/04/07 -> 10/04/07), ce dont j'aurais besoin. Peut-etre n'ai-je pas
su me faire comprendre et je m'en excuse. Est-ce plus clair ainsi ?
Comme je ne comprends pas la formule je ne saurai la modifier.
Voudrais-tu me depanner un peu plus ?
Merci encore.

Pierre.M


On 2007-04-05 04:40:34 +0200, isabelle said:

bonjour Pierre,

copie cette macro sur la page code de ThisWorkBook

Private Sub Workbook_Open()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,0)")
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End Sub

isabelle


Bonsoir tous,

j'ai cree un planning. Les dates sont en colonne A et les 5 premiers
lignes sont figees pour conserver les en-tetes visibles.

Comment faire pour qu'a l'ouverture du classeur la ligne contenant la
date du jour (si celle-ci figure dans le planning ) ou la date la plus
proche suivant la date du jour (si elle n'y figure pas) soit juste sous
le volet (soit en 5eme ligne)?

Je precise qu'il peut y avoir plusieurs lignes successives avec la meme
date, il faut alors que ce soit la premiere de ces lignes qui se place
"en-haut a gauche". Il peut aussi y avoir des cellules vides en colonne
A.

Merci a tous pour vos idees et bonne fin de soiree.

Pierre.M




Avatar
isabelle
bonjour Pierre,

voila la modification pour la date suivant celle du jour,

Sub Macro1()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,1)")
If Range("A" & x) <> Date Then
For i = 5 To 65536
If Range("A" & i) <> "" And Range("A" & i) >= Date Then
Application.GoTo Reference:=Range("A" & i), Scroll:=True
Exit For
End If
Next
Else
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End If
End Sub

isabelle

Merci beaucoup Isabelle pour t'etre penchee sur mon probleme.
Ta macro fonctionne tres bien quand la date du jour figure dans le
tableau (01/04/07, 05/04/07, 10/04/07 -> 05/04/07).
Par contre si la date du jour n'y est pas c'est la date qui precede
directement celle du jour qui se retrouve en haut (01/04/07, 03/04/07,
10/04/07 -> 03/04/07), et non la date qui suit (01/04/07, 03/04/07,
10/04/07 -> 10/04/07), ce dont j'aurais besoin. Peut-etre n'ai-je pas su
me faire comprendre et je m'en excuse. Est-ce plus clair ainsi ?
Comme je ne comprends pas la formule je ne saurai la modifier.
Voudrais-tu me depanner un peu plus ?
Merci encore.

Pierre.M


On 2007-04-05 04:40:34 +0200, isabelle said:

bonjour Pierre,

copie cette macro sur la page code de ThisWorkBook

Private Sub Workbook_Open()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,0)")
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End Sub

isabelle


Bonsoir tous,

j'ai cree un planning. Les dates sont en colonne A et les 5 premiers
lignes sont figees pour conserver les en-tetes visibles.

Comment faire pour qu'a l'ouverture du classeur la ligne contenant la
date du jour (si celle-ci figure dans le planning ) ou la date la
plus proche suivant la date du jour (si elle n'y figure pas) soit
juste sous le volet (soit en 5eme ligne)?

Je precise qu'il peut y avoir plusieurs lignes successives avec la
meme date, il faut alors que ce soit la premiere de ces lignes qui se
place "en-haut a gauche". Il peut aussi y avoir des cellules vides en
colonne A.

Merci a tous pour vos idees et bonne fin de soiree.

Pierre.M









Avatar
Pierre.M
Merci beaucoup Isabelle, c'est exactement ce qu'il me fallait.
Si tu avais un moment pourrais-tu juste me donner quelques explications
sur la formule "x=evaluate..." que je ne saisis pas (le reste ca
va;-). J'aime bien comprendre ce que je fais...
Sinon ca ne fais rien, tu as deja resolu mon probleme.
Merci encore et bon week-end.

Pierre.M

On 2007-04-05 23:30:42 +0200, isabelle said:

bonjour Pierre,

voila la modification pour la date suivant celle du jour,

Sub Macro1()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,1)")
If Range("A" & x) <> Date Then
For i = 5 To 65536
If Range("A" & i) <> "" And Range("A" & i) >= Date Then
Application.GoTo Reference:=Range("A" & i), Scroll:=True
Exit For
End If
Next
Else
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End If
End Sub

isabelle

Merci beaucoup Isabelle pour t'etre penchee sur mon probleme.
Ta macro fonctionne tres bien quand la date du jour figure dans le
tableau (01/04/07, 05/04/07, 10/04/07 -> 05/04/07).
Par contre si la date du jour n'y est pas c'est la date qui precede
directement celle du jour qui se retrouve en haut (01/04/07, 03/04/07,
10/04/07 -> 03/04/07), et non la date qui suit (01/04/07, 03/04/07,
10/04/07 -> 10/04/07), ce dont j'aurais besoin. Peut-etre n'ai-je pas
su me faire comprendre et je m'en excuse. Est-ce plus clair ainsi ?
Comme je ne comprends pas la formule je ne saurai la modifier.
Voudrais-tu me depanner un peu plus ?
Merci encore.

Pierre.M


On 2007-04-05 04:40:34 +0200, isabelle said:

bonjour Pierre,

copie cette macro sur la page code de ThisWorkBook

Private Sub Workbook_Open()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,0)")
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End Sub

isabelle


Bonsoir tous,

j'ai cree un planning. Les dates sont en colonne A et les 5 premiers
lignes sont figees pour conserver les en-tetes visibles.

Comment faire pour qu'a l'ouverture du classeur la ligne contenant la
date du jour (si celle-ci figure dans le planning ) ou la date la plus
proche suivant la date du jour (si elle n'y figure pas) soit juste sous
le volet (soit en 5eme ligne)?

Je precise qu'il peut y avoir plusieurs lignes successives avec la meme
date, il faut alors que ce soit la premiere de ces lignes qui se place
"en-haut a gauche". Il peut aussi y avoir des cellules vides en colonne
A.

Merci a tous pour vos idees et bonne fin de soiree.

Pierre.M








Avatar
JB
Bonsoir,

Sub auto_open()
p = Application.Match(CDbl(Date), [A1:A100], 1)
Application.Goto [A1].Offset(p - 1 + _
IIf(Application.Index([A1:A100], p) = Date, 0, 1)), scroll:=True
End Sub

JB


On 5 avr, 00:00, Pierre.M wrote:
Bonsoir tous,

j'ai cree un planning. Les dates sont en colonne A et les 5 premiers
lignes sont figees pour conserver les en-tetes visibles.

Comment faire pour qu'a l'ouverture du classeur la ligne contenant la
date du jour (si celle-ci figure dans le planning ) ou la date la plus
proche suivant la date du jour (si elle n'y figure pas) soit juste sous
le volet (soit en 5eme ligne)?

Je precise qu'il peut y avoir plusieurs lignes successives avec la meme
date, il faut alors que ce soit la premiere de ces lignes qui se place
"en-haut a gauche". Il peut aussi y avoir des cellules vides en colonne
A.

Merci a tous pour vos idees et bonne fin de soiree.

Pierre.M


Avatar
isabelle
bonjour Pierre,

x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,1)")

j'ai introduit la date du jour de cette manière,
" & Format(Date, "0") & "

car c'est la seule facon d'introduire une variable dans la fonction Evaluate
c'est à dire que Evaluate n'accepte que des données numérique en dur ou des adresses en dur
ou du texte enveloppé en double guillemets (c'est la règle)

si on reprent cette valeur en dur on a :
date du jour 2007-04-05 = 39177

x = Evaluate("=Match(LOOKUP(39177,A:A,A:A),A:A,1)")

LOOKUP(39177,A:A,A:A)
cette partie de la formule est la même que la fonction de feuille de calcul RECHERCHE

RECHERCHE(valeur_cherchée;vecteur_recherche;vecteur_résultat)
Si la fonction RECHERCHE ne peut trouver l'argument valeur_cherchée,
elle utilise la plus grande valeur de l'argument vecteur_recherche qui est inférieure
ou égale à celle de l'argument valeur_cherchée.

=RECHERCHE(39177,A:A,A:A)
donc si la date est trouver, le résultat est 2007-04-05 sinon c'est la date inférieur a celle ci,
disons quelle n'est pas trouver et que le résultat est 2007-04-04
malgré tout on est certain que la date 2007-04-04 est à quelque part en colonne A
reste à trouver ou, ce qui nous amène à la partie
Match(2007-04-04,A:A,1)
qui est équivalent à la formule EQUIV de la feuille de calcul.

en espérent que ce raisonnement sera assez compréhensif,
en tout les cas, si ça ne l'est pas,
ne te gène pas pour demander plus d'explications,
a+
isabelle

Merci beaucoup Isabelle, c'est exactement ce qu'il me fallait.
Si tu avais un moment pourrais-tu juste me donner quelques explications
sur la formule "x=evaluate..." que je ne saisis pas (le reste ca va;-).
J'aime bien comprendre ce que je fais...
Sinon ca ne fais rien, tu as deja resolu mon probleme.
Merci encore et bon week-end.

Pierre.M

On 2007-04-05 23:30:42 +0200, isabelle said:

bonjour Pierre,

voila la modification pour la date suivant celle du jour,

Sub Macro1()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,1)")
If Range("A" & x) <> Date Then
For i = 5 To 65536
If Range("A" & i) <> "" And Range("A" & i) >= Date Then
Application.GoTo Reference:=Range("A" & i), Scroll:=True
Exit For
End If
Next
Else
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End If
End Sub

isabelle


Merci beaucoup Isabelle pour t'etre penchee sur mon probleme.
Ta macro fonctionne tres bien quand la date du jour figure dans le
tableau (01/04/07, 05/04/07, 10/04/07 -> 05/04/07).
Par contre si la date du jour n'y est pas c'est la date qui precede
directement celle du jour qui se retrouve en haut (01/04/07,
03/04/07, 10/04/07 -> 03/04/07), et non la date qui suit (01/04/07,
03/04/07, 10/04/07 -> 10/04/07), ce dont j'aurais besoin. Peut-etre
n'ai-je pas su me faire comprendre et je m'en excuse. Est-ce plus
clair ainsi ?
Comme je ne comprends pas la formule je ne saurai la modifier.
Voudrais-tu me depanner un peu plus ?
Merci encore.

Pierre.M


On 2007-04-05 04:40:34 +0200, isabelle said:

bonjour Pierre,

copie cette macro sur la page code de ThisWorkBook

Private Sub Workbook_Open()
x = Evaluate("=Match(LOOKUP(" & Format(Date, "0") & ",A:A,A:A),A:A,0)")
Application.GoTo Reference:=Range("A" & x), Scroll:=True
End Sub

isabelle


Bonsoir tous,

j'ai cree un planning. Les dates sont en colonne A et les 5
premiers lignes sont figees pour conserver les en-tetes visibles.

Comment faire pour qu'a l'ouverture du classeur la ligne contenant
la date du jour (si celle-ci figure dans le planning ) ou la date
la plus proche suivant la date du jour (si elle n'y figure pas)
soit juste sous le volet (soit en 5eme ligne)?

Je precise qu'il peut y avoir plusieurs lignes successives avec la
meme date, il faut alors que ce soit la premiere de ces lignes qui
se place "en-haut a gauche". Il peut aussi y avoir des cellules
vides en colonne A.

Merci a tous pour vos idees et bonne fin de soiree.

Pierre.M