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

Le
Emile63
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 suiv=
antes 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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
GL
Le #26173562
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

MichD
Le #26173762
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
'-----------------------------------------
GL
Le #26173782
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
'-----------------------------------------


Emile63
Le #26174472
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
Jacky
Le #26174722
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"
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
MichD
Le #26174762
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)
GL
Le #26174832
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.
Emile63
Le #26175232
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
Jacquouille
Le #26175322
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
Jacky
Le #26175342
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"
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

Publicité
Poster une réponse
Anonyme