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

comment aligner l'écran sur la date du jour?

12 réponses
Avatar
Emile63
Bonjour =E0 tous,
J'ai mis sur une ligne (10) de ma feuille XL, tous les jours de l'ann=E9e, =
incr=E9ment=E9s vers la droite chaque jour suppl. =E0 la colonne suivante, =
avec une formule du style: En A10, date du 1er janvier 2014 et sur les suiv=
antes A$10+1, etc..=20
Qui fonctionne correctement.

Je souhaite avec du code qu'=E0 chaque changement sur la feuille l'=E9cran =
s'aligne en haut =E0 gauche sur la date du jour.
---------------------------
Sub Worksheet_Change(ByVal Target As Range)
MaDate$, NumCol$
MaDate =3D Format(Date, "d mmm")
NumCol=3D Rows("10:10").Find(MaDate).Column
Application.Goto Reference:=3DRange((NumCol)&"10"), Scroll:=3DTrue
End Sub
---------------------------

Mais je butte sur un msg d'erreur dont je ne trouve pas la raison.

"""""""""""""""""""""""""""""""""""""""
Erreur d'=E9x=E9cution 91
Variable objet ou bloc with non d=E9fini
"""""""""""""""""""""""""""""""""""""""

Est-ce que quelqu'un peut me pr=EAter une main secourable ?

Merci d'avance, :-)

Cordialement,
Emile

10 réponses

1 2
Avatar
GL
Le 02/06/2014 15:44, Emile63 a écrit :
Bonjour à tous,
J'ai mis sur une ligne (10) de ma feuille XL, tous les jours de l'année, incrémentés vers la droite chaque jour suppl. à la colonne suivante, avec une formule du style: En A10, date du 1er janvier 2014 et sur les suivantes A$10+1, etc..
Qui fonctionne correctement.

Je souhaite avec du code qu'à chaque changement sur la feuille l'écran s'aligne en haut à gauche sur la date du jour.



A priori si vous voulez que la ligne "l" soit la première affiche sur
l'écran, ça devrait être :

ActiveWindow.ScrollRow = l ( il y a aussi ScrollColumn )

Si vous voulez décaler un peu vous pouvez modifier l ( l-2 par exemple,
en faisant attention aux bornes...)

Un peu plus compliquer si vous voulez centrer la ligne l : il va falloir
calculer avec ActiveWindow.VisibleRange (j'ai un raccourci qui centre
"à peu près" et verticalement la cellule active, c'est très pratique :
ça évite de bouger les yeux ;-) )

Bonne journée.




---------------------------
Sub Worksheet_Change(ByVal Target As Range)
MaDate$, NumCol$
MaDate = Format(Date, "d mmm")
NumCol= Rows("10:10").Find(MaDate).Column
Application.Goto Reference:=Range((NumCol)&"10"), Scroll:=True
End Sub
---------------------------

Mais je butte sur un msg d'erreur dont je ne trouve pas la raison.

"""""""""""""""""""""""""""""""""""""""
Erreur d'éxécution 91
Variable objet ou bloc with non défini
"""""""""""""""""""""""""""""""""""""""

Est-ce que quelqu'un peut me prêter une main secourable ?

Merci d'avance, :-)

Cordialement,
Emile

Avatar
MichD
Bonjour,

Le message d'erreur "Erreur d'éxécution 91" provient de cette ligne de code.
La méthode "Find" n'arrive pas à trouver ce qu'elle cherche. La méthode "Find"
pour trouver une date particulière est alambiquée. Dans ton cas particulier,
cette approche n'est pas appropriée.

NumCol= Rows("10:10").Find(MaDate).Column

Il serait préférable que tu utilises ceci :

'-----------------------------------------
Sub test()
Dim LaDate As Date, X as variant
LaDate = Date

x = Application.Match(CLng(LaDate), Rows("2:2").Cells, 0)
If IsNumeric(x) Then
MsgBox "La colonne : " & x
Else
Err.Clear
End If

End Sub
'-----------------------------------------
Avatar
GL
Le 02/06/2014 17:12, MichD a écrit :
Bonjour,

Le message d'erreur "Erreur d'éxécution 91" provient de cette ligne de
code.
La méthode "Find" n'arrive pas à trouver ce qu'elle cherche. La méthode
"Find"
pour trouver une date particulière est alambiquée. Dans ton cas
particulier,
cette approche n'est pas appropriée.

NumCol= Rows("10:10").Find(MaDate).Column

Il serait préférable que tu utilises ceci :

'-----------------------------------------
Sub test()
Dim LaDate As Date, X as variant
LaDate = Date

x = Application.Match(CLng(LaDate), Rows("2:2").Cells, 0)



WorksheetFunction.Match (c'est EQUIV en Français...)

If IsNumeric(x) Then
MsgBox "La colonne : " & x
Else
Err.Clear
End If

End Sub
'-----------------------------------------


Avatar
Emile63
Merci MichD et GL pour votre aide.

MichD, avec ta solution il trouve bien la position de la date mais me renvo ie celle-ci sous forme numérique (ex: 147).
comment je peux faire pour qu'elle me renvoie la colonne (A,B,C etc..)
Ce qui me faciliterais ensuite mon "Scroll" de l'écran...
Merci d'avance pour ton aide,
Emile
Avatar
Jacky
Bonjour,

Je souhaite avec du code qu'à chaque changement sur la feuille l'écran s'aligne en haut à gauche sur la date
du jour.



'----------------------
Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Application.Match(CLng(Date), Rows("10:10").Cells, 0)) Then
Application.Goto Cells(10, Application.Match(CLng(Date), Rows("10:10").Cells, 0)), True
Else
MsgBox "Date inconnue"
End If
End Sub
'------------------------

--
Salutations
JJ


"Emile63" a écrit dans le message de news:

Bonjour à tous,
J'ai mis sur une ligne (10) de ma feuille XL, tous les jours de l'année, incrémentés vers la droite chaque
jour suppl. à la colonne suivante, avec une formule du style: En A10, date du 1er janvier 2014 et sur les
suivantes A$10+1, etc..
Qui fonctionne correctement.

Je souhaite avec du code qu'à chaque changement sur la feuille l'écran s'aligne en haut à gauche sur la date
du jour.
---------------------------
Sub Worksheet_Change(ByVal Target As Range)
MaDate$, NumCol$
MaDate = Format(Date, "d mmm")
NumCol= Rows("10:10").Find(MaDate).Column
Application.Goto Reference:=Range((NumCol)&"10"), Scroll:=True
End Sub
---------------------------

Mais je butte sur un msg d'erreur dont je ne trouve pas la raison.

"""""""""""""""""""""""""""""""""""""""
Erreur d'éxécution 91
Variable objet ou bloc with non défini
"""""""""""""""""""""""""""""""""""""""

Est-ce que quelqu'un peut me prêter une main secourable ?

Merci d'avance, :-)

Cordialement,
Emile
Avatar
MichD
Dans la procédure suggérée, modifie cette ligne de code et tu obtiendras
les lettres de la colonne où se trouve la date.

MsgBox "La colonne : " & x
Par :
MsgBox "La colonne : " & Split(Cells(1, X).Address, "$")(1)
Avatar
GL
Le 03/06/2014 10:38, Jacky a écrit :
Bonjour,

Je souhaite avec du code qu'à chaque changement sur la feuille l'écran s'aligne en haut à gauche sur la date
du jour.



'----------------------
Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Application.Match(CLng(Date), Rows("10:10").Cells, 0)) Then
Application.Goto Cells(10, Application.Match(CLng(Date), Rows("10:10").Cells, 0)), True
Else
MsgBox "Date inconnue"
End If
End Sub
'------------------------



Effectivement avec Goto ça marche bien.
C'est bizarre qu'il faille convertir la date en Long
(ou Double ou LongLong etc.) : Date étant un format numérique...

Cdt.
Avatar
Emile63
Merci à tous pour votre aide.
Mal parti, j'ai bien saisi le fil des idées que vous m'avez proposé, et Jacky m'a apporté la solution finale ;-)
Merci encore à tous,
cordialement,

Emile
Avatar
Jacquouille
En effet, Jacky est assez expéditif .....

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Emile63" a écrit dans le message de groupe de discussion :


Merci à tous pour votre aide.
Mal parti, j'ai bien saisi le fil des idées que vous m'avez proposé, et
Jacky m'a apporté la solution finale ;-)
Merci encore à tous,
cordialement,

Emile


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Avatar
Jacky
Hello Jacquouille
...expéditif .....
Pfffff !
S'il faut des explications, il suffit de demander :-)
Sinon il y a toujours GMD et GMDco MVPs
;o)))
--
Salutations
JJ


"Jacquouille" a écrit dans le message de news: lmkptj$abo$
En effet, Jacky est assez expéditif .....

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Emile63" a écrit dans le message de groupe de discussion :


Merci à tous pour votre aide.
Mal parti, j'ai bien saisi le fil des idées que vous m'avez proposé, et Jacky m'a apporté la solution finale
;-)
Merci encore à tous,
cordialement,

Emile

---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast!
Antivirus est active.
http://www.avast.com

1 2