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
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
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.
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
'-----------------------------------------
WorksheetFunction.Match (c'est EQUIV en Français...)
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
'----------------------
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
les lettres de la colonne où se trouve la date.
MsgBox "La colonne : " & x
Par :
MsgBox "La colonne : " & Split(Cells(1, X).Address, "$")(1)
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.
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 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
...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"