Placer le curseur sur la date du jour, automatiquement à l'ouverture dans un calendri

dePOI

XLDnaute Junior
Bonjour à tous,
Je ne possède pas de beaucoup de connaissances dans le domaine de VBA.
Qui pourrait m'aider à résoudre le petit problème suivant:
Dans un tableau à 12 colonnes (Une par mois!) j'ai disposé de haut en bas toutes les dates au format date. Chaque date est calculée par rapport au jour précédent.
Je souhaite, par une macro activée à l'ouverture du classeur obtenir le positionnement automatique du classeur sur la date correspondante à "aujourdhui()".
J'ai trouvé des solutions sur le site mais aucune ne me satisfait pleinement.
Je sollicite votre aide et vous en remercie d'avance.
PS: si je n'ai pas fait d'erreur, ci-joint le fichier correspondant
 

Pièces jointes

  • HEURES KATIA.xlsx
    42.6 KB · Affichages: 200

JCGL

XLDnaute Barbatruc
Re : Placer le curseur sur la date du jour, automatiquement à l'ouverture dans un cal

Bonjour à tous,
Bienvenue sur XLD,

Tu aurais du poster sur le Forum Excel...

Dans le module ThisWorkBook (accessible par Alt F11) :

VB:
Option Explicit


Private Sub Workbook_Open()
Dim LaDate As String
LaDate = Feuil1.Cells(1, 1).Value
Feuil1.Range("E5:AL35").Find(What:=LaDate, After:=Feuil1.Range("E5"), LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
End Sub

A + à tous
 

dePOI

XLDnaute Junior
Re : Placer le curseur sur la date du jour, automatiquement à l'ouverture dans un cal

Merci pour la réponse.
J'ai fais comme demandé,(du mois je l’espère), c.a.d. copier, alt F11, coller dans la page qui apparait etc..Enregistrer.
J'ai relancé l'ouverture du classeur et .... CALME PLAT! :confused:
J'ai surement mal fait qqchose, mais quoi?:mad:
Au secours!
Bonne journée et merci de votre patience avec l'ignorant qui vous écrit.
 

JCGL

XLDnaute Barbatruc
Re : Placer le curseur sur la date du jour, automatiquement à l'ouverture dans un cal

Bonjour à tous,

Il faut placer le code dans le ThisWorkBook du fichier concerné :

Modules_ThisWorkBook.JPG

Voir le fichier en attachement.

Tu pourrais ne pas utiliser les cellules en D5 : D35 et suivantes pour la MeFC sur les jours :

Capture_1.png

Capture_2.png

A + à tous

A + à tous
 

Pièces jointes

  • Modules_ThisWorkBook.JPG
    Modules_ThisWorkBook.JPG
    8.3 KB · Affichages: 389
  • Modules_ThisWorkBook.JPG
    Modules_ThisWorkBook.JPG
    8.3 KB · Affichages: 350
  • Capture_1.png
    Capture_1.png
    46.2 KB · Affichages: 412
  • Capture_1.png
    Capture_1.png
    46.2 KB · Affichages: 381
  • Capture_2.png
    Capture_2.png
    32.9 KB · Affichages: 372
  • Capture_2.png
    Capture_2.png
    32.9 KB · Affichages: 335
  • Ouverture sur Date Plage.xlsm
    64.7 KB · Affichages: 296

dePOI

XLDnaute Junior
Re : Placer le curseur sur la date du jour, automatiquement à l'ouverture dans un cal

Merci pour votre réponse si rapide. C'est le TGV chez vous!
Cela fonctionne parfaitement en répondant de manière précise à mon attente.
Cerise sur le gâteau : votre proposition de modification de mes MEFC. A n'en pas douter c'est mon prochain travail qui devrait peut-être "alléger" le fichier et le rendre plus rapide?
Merci mille fois encore, je ne regrette pas de vous avoir sollicité.
 

riton00

XLDnaute Impliqué
Bonsoir JBR57,
En fait le fichier de JCGL fonctionne le seul truc est qu'il faut mettre les bonnes dates "2012" , actuellement son code cherche à trouver la date du jour dans E5:AL35 alors que dans cette plage il y a pas la date d'aujourd'hui de présente d'ou Erreur d'exécution '91': Vois ce fichier avec les bonnes dates mis en place
Active les macro et tu verras il va chercher la date d'aujourd'hui

Slts
 

Pièces jointes

  • HEURES KATIA.xlsm
    49 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
re
Bonsoir
ne jamais faire un activate sur une ligne find c'est la base et surtout pour les débutants
pourquoi:
et bien si le find ne donne rien il y a erreur
et une erreur déclenche le message d'erreur (fin ou débogage)
et dans les deux choix vba est réinitialisé ce qui peut engendrer la perte de la valeur d’éventuelles autres variables globale module ou public
à méditer
d'autre part Attention certaines configs ont la fâcheuse manie de travailler différemment
en effet le find doit se faire sur le numérique de date

d’ailleurs ici on voit bien que ça déraille même si ca marche
ladate est une variable string pourtant le find va chercher la valeur de A1 qui elle est vraiment une date

bref une condition si nothing ,ça mange pas de pain
VB:
Option Explicit

Sub Trouve_Date()
    Dim LaDate As String, CeL As Range
    LaDate = Feuil1.Cells(1, 1).Value
    Set CeL = Feuil1.Range("E5:AL35").Find(What:=LaDate, After:=Feuil1.Range("E5"), LookIn:=xlValues, LookAt:=xlPart)
    If Not CeL Is Nothing Then
        CeL.Activate
    Else
        MsgBox "la plage E5:AL35 ne contien pas la date d'aujourd'hui":
    End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 214
Messages
2 086 311
Membres
103 175
dernier inscrit
abcc