Atteindre date du jour
Bonjour
Est-ce que quelqu'un de sympa peux me filer un petit coup de pouce svp ?
J'ai besoin d'un code qui me permet d'atteindre la date du jour dans mon fichier. Sélection de la cellule contenant la date du jour ou bien la cellule adjacente à la date du jour. Colonne D ou E.
Macro que j'appellerai par un bouton commande.
Voir mon fichier en PJ.
Par avance, merci de votre aide.
Bonjour Marinekali,
Avec l'enregistreur de macros que vous devriez penser à utiliser, vous pouvez obtenir du code
qu'il faut ensuite variabiliser et optimiser
Voici ce que vous pouvez faire
Sub AtteindreAujourdhui()
Dim DateDuJour As Date
Dim CelluleDuJour As Range
' Récupérer la date du jour
DateDuJour = Date
' Rechercher la cellule contenant la date du jour
Set CelluleDuJour = Range("D:D").Find(DateDuJour, LookIn:=xlValues, LookAt:=xlWhole)
' Vérifier si la cellule a été trouvée
If Not CelluleDuJour Is Nothing Then
' Sélectionner la cellule contenant la date du jour
CelluleDuJour.Select
Else
MsgBox "La date du jour n'a pas été trouvée dans la colonne D."
End If
End SubA+
Bonjour Bruno
Merci pour votre aide; je vais tester ça
Bien cordialement.
Bruno.
Votre code tourne impeccable.
Mais malgré tout le message box s'affiche pour dire que la date du jour n'est pas trouvée. Alors qu'elle figure bien dans la colonne D de mon tableau.
Est-ce-que cela vient du fait qu'il est mis en forme avec la fonction "mettre sous forme de tableau" ? Du coup je me demande si il ne cherche pas en dehors du tableau. (?)
Qu'en dites vous ?
Comment est-ce possible de résoudre ça svp si c'est bien ça le problème ?
Une fois la date trouvée et sélectionnée, puis-je décaler la sélection à la cellule adjacente à droite, colonne C (Volume) qui devra faire l'objet d'une saisie manuelle par l'utilisateur ? Comment faire ?
Encore merci de l'aide que vous pourrez m''apporter.
Belle journée à vous.
MK
bonjour.
il y a un fichier dans mon post initial.
merci
Bonjour …
Le tableau se nommant TB :
Sub AtteindreAujourdhui(): Application.Goto [TB].Find(Date): End SubNota : la date figure dans la liste et il n'y a pas de doublons prévus dans ce cas !
Bonjour à tous,
Ah bon, ça fonctionne chez vous parce que moi ça ne sélectionne pas de date
Ton tableau se nomme Tableau1 et non TB,
Application.Goto [Tableau1].Find(Date)Chez moi, les 2 solutions fonctionnent,
Cordialement,
MarineKali,
Si j'en crois votre capture d'écran, vous êtes sur Mac
Bruno
Ah bon, ça fonctionne chez vous parce que moi ça ne sélectionne pas de date et je fais l'essai sur le même classeur que celui que je vous ai envoyé. J'ai placé votre code dans un module.
C'est étrange ! Une idée ?
Voir capture d'écran.
![]()
Ceci explique cela
Sans conviction essayez peut-être ceci
Sub AtteindreAujourdhui()
Dim DateDuJour As String
Dim CelluleDuJour As Range
' Récupérer la date du jour au format américain
DateDuJour = "#" & Format(Date, "mm/dd/yyyy") & "#"
' Rechercher la cellule contenant la date du jour
Set CelluleDuJour = Range("D:D").Find(DateDuJour, LookIn:=xlValues, LookAt:=xlWhole)
' Vérifier si la cellule a été trouvée
If Not CelluleDuJour Is Nothing Then
' Sélectionner la cellule contenant la date du jour
CelluleDuJour.Select
Else
MsgBox "La date du jour n'a pas été trouvée dans la colonne D."
End If
End SubA+
Alors Messieurs (BrunoM45, Ordonc, Xorsankukai)
Je ne. désespère pas je vais y arriver ! c'est comme ça qu'on apprend, hein ?!
Alors après m'être arrachée les cheveux toute la sainte journée avec ça, je reviens vers vous car j'ai encore besoin de vos lumières, oh combien précieuses !
@BrunoM45 --> Oui effectivement, je suis sur MAC à la maison et donc ça ne fonctionne pas. Même avec votre dernière proposition avec le format de date américain.
Toutefois j'ai testé sur mon PC portable Windows et là je confirme que vos deux codes s'exécutent à merveille sur le fichier initialement transmis. Aussi bien celui de Bruno que de Ordonc. Et c'est le principal car le fichier sera utilisé sur PC uniquement au quotidien ! Ouf ! J'y suis presque !
Pourquoi presque ?
Parce que j'essaie de transposer vos codes dans le fichier final (je vous avais envoyé initialement un fichier allégé..) et là ça ne fonctionne plus..même sur PC !
Truc de dingue !!
Alors que pour moi la structure est quasi identique, le tableau s'appelle aussi Tableau1, qu'il est aussi sur la feuil1 du classeur et que les colonnes de départ sont les mêmes ! Il y a juste plus de colonnes que dans le fichier initialement transmis. Mais vu que dans vos codes respectifs il n'y a pas de notion de variables de lignes ou de colonnes, je ne vois pas où est le problème cette fois. C'est d'ailleurs pour éviter ce genre de déconvenue que j'utilise la "Mise sous forme de tableau".
@Bruno, ça restera une énigme pour moi que ça fonctionne sur PC mais pas MAC sur ma 1ère version de fichier ! mais le principal étant que ça fonctionne sur PC pour le moment et SURTOUT sur le classeur final.
Encore merci à vous Bruno et à tous ceux qui contribuent à faire vivre ce forum ! C'est chouette cette communauté !
Bon Bruno, vous êtes au top ! C'était donc ça !! Un format de date !
Alors effectivement, je confirme qu'en mettant mes dates au format date courte d'Excel, tout fonctionne bien. Super bien, même.
SAUF, que j'aurai souhaité garder mon format de date personnalisée car il est important de visualiser le nom du jour.
Alors je me suis dit que j'allais tenter d'adapter votre code avec le format de date américain en transposant mon format personnalisé français à savoir
JJJ JJ MMM A mais ça ne passe pas !
Une idée de ce qu'on peut faire car j'imagine que c'est possible aussi de sélectionner la date du jour avec un format personnalisé. Non ?
Et comment faire pour décaler d'une cellule vers la droite après sélection de la date du jour, là où l'utilisateur devra saisir...(si j'arrive à livrer...lol)
J'ai déjà, beaucoup appris avec vous today. Merci.
Bien à vous.
Bonsoir,
Peut-être en convertissant la date en "Long"? (après tout, une date, c'est juste un nombre...)
Application.Goto Cells(Application.Match(CLng(Date), Range("D:D"), 0), "D").Offset(, 1)Bonne soirée
Re,
Alors dans ce cas là, on peut faire beaucoup plus simple que mon précédent code
Sub AtteindreAujourdhui()
Dim Cel As Range
For Each Cel In Range("TBSPS[Date]")
If Cel.Value = Date Then
Cel.Select: Exit For
End If
Next Cel
End SubSinon ça fonctionne aussi avec le code de cousinhub que je salue
A+
Re...
Bonsoir…
J’avais proposé un nom de tableau simple TB alors qu’on trouve dans le dernier fichier donné TBSPS.
En le gardant il faut aussi le garder dans la macro !
Sub AtteindreAujourdhui() : Application.Goto [TBSPS].Find(Date) :End SubEn passant par le nom Tableau1, tu vois, Marinekali, ce qu'il te reste à faire
Bruno (salut), la mise en forme importe peu même avec ce code (original modifié* mais pas testé avec le Mac)
Sub AtteindreAujourdhui()
Dim R As Range
Set R = Range("D:D").Find(Date)
If Not R Is Nothing Then
R.Select
Else
MsgBox "La date du jour n'est pas dans la colonne D !", "", "Oups… "
End If
End SubNota : attention, il faut connaître des noms (courants) comme Date donc éviter d’en rajouter inutilement avec
...
Dim DateDuJour As Date
DateDuJour = Date
...* je privilégie des noms courts (R va bien avec Range, non ?)
Bonsoir,
Re...
Bonsoir…
J’avais proposé un nom de tableau simple TB alors qu’on trouve dans le dernier fichier donné TBSPS.
En le gardant il faut aussi le garder dans la macro !
Sub AtteindreAujourdhui() : Application.Goto [TBSPS].Find(Date) :End SubEn passant par le nom Tableau1, tu vois, Marinekali, ce qu'il te reste à faire
. Bruno (salut), la mise en forme importe peu même avec ce code (original modifié* mais pas testé avec le Mac)
Sub AtteindreAujourdhui() Dim R As Range Set R = Range("D:D").Find(Date) If Not R Is Nothing Then R.Select Else MsgBox "La date du jour n'est pas dans la colonne D !", "", "Oups… " End If End SubNota : attention, il faut connaître des noms (courants) comme Date donc éviter d’en rajouter inutilement avec
... Dim DateDuJour As Date DateDuJour = Date ...* je privilégie des noms courts (R va bien avec Range, non ?)
Avant d'affirmer, tu pourrais essayer?
As-tu téléchargé son fichier?
As-tu essayé tes 2 codes?
Et tu confirmes que ça fonctionne?
En tout cas, chez moi, PC Win11, Excel 2021, j'ai soit un "la date du jour n'est pas....", soit un beau "fu*k"
Le principe d'un forum n'est pas seulement de mettre en avant les "détails" et ou "erreurs" dans les codes des autres, mais surtout de proposer des solutions qui "Fonctionnent"...
A bon entendeur
PS, quelle idiotie, ce "R" qu'on trouve parfois dans quelques codes de certains questionneurs dans les "ByVal R as Range" des évènements....
je ne doutais pas en venant sur le forum hier soir que je trouverai une solution à mon problème.
Je sais pour être passée quelques fois qu'il y'a du level !! Mais au-delà de vos connaissances/compétences vous êtes bienveillants, pédagogues, ultra-réactifs !
Tout est nickel pour moi.
J'ai plein de bout de codes différents que je garderai precieusement pour des utilisations futures que j'adapterai selon le contexte..
Une mention
Merci de votre contribution Messieurs.
Je vous adore.
Marinekali
Une élève en progression
Au plaisir de vous recroiser.



