Fonction recherche date excel

Le
erikatsimi
Bonjour,
Je programme depuis peu en Excel et j'ai du mal à faire une fonction p=
our rechercher une date au format date longue sur un tableau si quelqu'un v=
eut bien m'aider depuis 1 semaine je suis bloquée dessus

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Erika Tsimi
Le #26551519
Le samedi 18 juillet 2020 19:21:13 UTC+2, Erika Tsimi a écrit :
Bonjour,
Je programme depuis peu en Excel et j'ai du mal à faire une fonction pour rechercher une date au format date longue sur un tableau si quelqu'un veut bien m'aider depuis 1 semaine je suis bloquée dessus

Sub Aujourdhui(control As IRibbonControl)
Dim Trouve As Range
Dim Date_jour As String
Date_jour = Format(VBA.Date)
Set Trouve = Range("D3:GD3").Find(What:y(Date), LookAt:=xlWhol e)
If Trouve Is Nothing Then
'ici, traitement pour le cas o? la valeur n'est pas trouv?e
MsgBox "valeur introuvable"
Else
'ici, traitement pour le cas o? la valeur est trouv?e
Cells.FindNext(After:tiveCell).Activate
ActiveWindow.ScrollColumn = Selection.Column
MsgBox "valeur trouv?e"
End If
End Sub
MichD
Le #26551588
Le 18/07/20 à 13:21, a écrit :
Bonjour,
Je programme depuis peu en Excel et j'ai du mal à faire une fonction pour rechercher une date au format date longue sur un tableau si quelqu'un veut bien m'aider depuis 1 semaine je suis bloquée dessus


Bonjour,
Recherche une date dont le format est reconnu par Excel, peu importe son
format dans la feuille de calcul "Feuil1". Cela fonctionne à partir de
la version Excel 2016. Pour les versions plus anciennes, je ne suis pas
sûr...
'---------------------------------------------
Sub test()
Dim LaDate As Date
Dim Trouve As Range
LaDate = Date 'Date d'aujourd'hui ou
'elle que tu désires)
Set Trouve = Worksheets("Feuil1").Cells.Find(What:=LaDate, _
LookIn:=xlFormulas, LookAt:=xlPart)
If Not Trouve Is Nothing Then
Trouve.Select
MsgBox Trouve.Address
Else
MsgBox "Date cherchée non trouvée."
End If
End Sub
'---------------------------------------------
MichD
Péhemme
Le #26551602
Bonjour Denis,
Pour les versions plus anciennes, je ne suis pas sûr...

Ta macro fonctionne sous W7 - Excel 2010.
Bonne journée
Michel
"MichD" a écrit dans le message de groupe de discussion :
rf2k08$1dlt$
Le 18/07/20 à 13:21, a écrit :
Bonjour,
Je programme depuis peu en Excel et j'ai du mal à faire une fonction pour
rechercher une date au format date longue sur un tableau si quelqu'un veut
bien m'aider depuis 1 semaine je suis bloquée dessus


Bonjour,
Recherche une date dont le format est reconnu par Excel, peu importe son
format dans la feuille de calcul "Feuil1". Cela fonctionne à partir de
la version Excel 2016. Pour les versions plus anciennes, je ne suis pas
sûr...
'---------------------------------------------
Sub test()
Dim LaDate As Date
Dim Trouve As Range
LaDate = Date 'Date d'aujourd'hui ou
'elle que tu désires)
Set Trouve = Worksheets("Feuil1").Cells.Find(What:=LaDate, _
LookIn:=xlFormulas, LookAt:=xlPart)
If Not Trouve Is Nothing Then
Trouve.Select
MsgBox Trouve.Address
Else
MsgBox "Date cherchée non trouvée."
End If
End Sub
'---------------------------------------------
MichD
MichD
Le #26551627
Le 20/07/20 à 03:39, Péhemme a écrit :
'---------------------------------------------
Sub test()
Dim LaDate As Date
Dim Trouve As Range
LaDate = Date 'Date d'aujourd'hui ou
              'elle que tu désires)
Set Trouve = Worksheets("Feuil1").Cells.Find(What:=LaDate, _
            LookIn:=xlFormulas, LookAt:=xlPart)
If Not Trouve Is Nothing Then
    Trouve.Select
    MsgBox Trouve.Address
Else
    MsgBox "Date cherchée non trouvée."
End If
End Sub


Merci Péhemme.
Si le demandeur veut trouver la date ayant un format particulier
parmi plusieurs dates dans la même feuille, il peut utiliser ceci :
IL faut adapter ce format "j mmmm aaaa" dans la procédure pour le
format que l'on désire trouver.
'---------------------------------------------
Sub test()
Dim LaDate As Date
Dim Trouve As Range
LaDate = Date 'Date d'aujourd'hui ou
'elle que tu désires)
Set Trouve = Worksheets("Feuil1").Cells.Find(What:=LaDate, _
LookIn:=xlFormulas, LookAt:=xlPart)
If Not Trouve Is Nothing Then
adr = Trouve.Address
Do
If Worksheets("Feuil1").Range(Trouve.Address). _
NumberFormatLocal = "j mmmm aaaa" Then
Worksheets("Feuil1").select
Trouve.Select
MsgBox Trouve.Address
Exit Do
Else
Set Trouve = Worksheets("Feuil1").Cells.FindNext(Trouve)
End If
Loop Until Trouve.Address = adr
Else
MsgBox "Date cherchée non trouvée."
End If
End Sub
'---------------------------------------------
MichD
Jacquouille
Le #26551695
Le samedi 18 juillet 2020 19:21:13 UTC+2, a écrit  :
Bonjour,
Je programme depuis peu en Excel et j'ai du mal à faire une fonction pour rechercher une date au format date longue sur un tableau si quelqu'un veut bien m'aider depuis 1 semaine je suis bloquée dessus

Salut Denis, salut Péhemme
Cette marco pète le feu de Dieu avec 2003 ... si les cel sont format ées en "date" et si elles sont entrées en dur. =aujourdhui() af fiche 21/7/2020 mais n'est pas reconnu .
Bonne fin de journée à vous.
Péhemme
Le #26551709
Bonjour Denis,
(coucou à Jacques en passant)
Je n'ai pas réussi à faire fonctionner ta 2nd proposition.
J'ai certainement mal adapté la macro proposée.
Cela dit, il faut être particulièrement pervers pour saisir des dates sous
des formats différents dans un champ donné.
;-))
Si tu veux t'amuser j'ai mis mon fichier à l'adresse suivante :
https://www.cjoint.com/c/JGvpW18lDIc
Bien amicalement
Michel (w7 - 2010)
"MichD" a écrit dans le message de groupe de discussion :
rf45si$8ao$
Le 20/07/20 à 03:39, Péhemme a écrit :
'---------------------------------------------
Sub test()
Dim LaDate As Date
Dim Trouve As Range
LaDate = Date 'Date d'aujourd'hui ou
'elle que tu désires)
Set Trouve = Worksheets("Feuil1").Cells.Find(What:=LaDate, _
LookIn:=xlFormulas, LookAt:=xlPart)
If Not Trouve Is Nothing Then
Trouve.Select
MsgBox Trouve.Address
Else
MsgBox "Date cherchée non trouvée."
End If
End Sub


Merci Péhemme.
Si le demandeur veut trouver la date ayant un format particulier
parmi plusieurs dates dans la même feuille, il peut utiliser ceci :
IL faut adapter ce format "j mmmm aaaa" dans la procédure pour le
format que l'on désire trouver.
'---------------------------------------------
Sub test()
Dim LaDate As Date
Dim Trouve As Range
LaDate = Date 'Date d'aujourd'hui ou
'elle que tu désires)
Set Trouve = Worksheets("Feuil1").Cells.Find(What:=LaDate, _
LookIn:=xlFormulas, LookAt:=xlPart)
If Not Trouve Is Nothing Then
adr = Trouve.Address
Do
If Worksheets("Feuil1").Range(Trouve.Address). _
NumberFormatLocal = "j mmmm aaaa" Then
Worksheets("Feuil1").select
Trouve.Select
MsgBox Trouve.Address
Exit Do
Else
Set Trouve = Worksheets("Feuil1").Cells.FindNext(Trouve)
End If
Loop Until Trouve.Address = adr
Else
MsgBox "Date cherchée non trouvée."
End If
End Sub
'---------------------------------------------
MichD
MichD
Le #26551727
Le 21/07/20 à 11:55, Péhemme a écrit :
Bonjour Denis,
(coucou à Jacques en passant)
Je n'ai pas réussi à faire fonctionner ta 2nd proposition.
J'ai certainement mal adapté la macro proposée.
Cela dit, il faut être particulièrement pervers pour saisir des dates
sous des formats différents dans un champ donné.
;-))
Si tu veux t'amuser j'ai mis mon fichier à l'adresse suivante :
https://www.cjoint.com/c/JGvpW18lDIc

Dans ma macro, j'utilise le format de cellule J mmmm aaaa,
dans ton fichier le format des dates en colonne A est :
[$-F800]jjjj, mmmm jj, aaaa
Dans la fenêtre "Format de cellules / nombre / date / tu as omis de lire
les quelques lignes dans le bas de la page. Si tu utilises les formats
"date" prédéterminés ayant un astérisque comme premier caractère, cette
section [$-F800] est ajoutée au format représentant le paramètre
régional de France (ou du pays en question). Si tu utilises un format
personnalisé "j mmmm aaaa" le format sera bien j mmmm aaaa et non
[$-F800]jjjj, mmmm jj, aaaa et la macro devrait fonctionner. Si tu
préfères, tu modifies le format date utilisé
dans la macro et le résultat devrait être bon aussi.
Salut capitaine... ;-)
MichD
MichD
Le #26551726
Le 21/07/20 à 10:48, Jacquouille a écrit :
Le samedi 18 juillet 2020 19:21:13 UTC+2, a écrit :
Bonjour,
Je programme depuis peu en Excel et j'ai du mal à faire une fonction pour rechercher une date au format date longue sur un tableau si quelqu'un veut bien m'aider depuis 1 semaine je suis bloquée dessus

Salut Denis, salut Péhemme
Cette marco pète le feu de Dieu avec 2003 ... si les cel sont formatées en "date" et si elles sont entrées en dur. =aujourdhui() affiche 21/7/2020 mais n'est pas reconnu .
Bonne fin de journée à vous.


Bonjour Jacquouille,
Si la date émane d'une formule, tu dois modifier ceci LookIn:=xlFormulas
par LookIn:=xlValues comme dans la procédure suivante :
'------------------------------------
Sub test()
Dim LaDate As Date
Dim Trouve As Range
LaDate = Date 'Date d'aujourd'hui ou
'elle que tu désires)
Set Trouve = Cells.Find(What:=LaDate, _
LookIn:=xlValues, LookAt:=xlWhole)
If Not Trouve Is Nothing Then
Trouve.Select
MsgBox Trouve.Address
Else
MsgBox "Date cherchée non trouvée."
End If
End Sub
'------------------------------------
MichD
Péhemme
Le #26551762
Bonjour Denis,
Que de subtilités...
Maintenant, c'est moi qui aie de quoi m'amuser.
Et dire que je n'ai jamais eu de problèmes dans mes tableaux et recherche
automatique de dates. Je découvre maintenant que j'aurais pu en avoir... Ouf
! Heureusement que je suis à la retraite...
:-)))
Bonne journée et merci encore pour le cours
Et question subsidiaire : qu'est devenu le demandeur ?
:-)))
Bien amicalement
Michel
"MichD" a écrit dans le message de groupe de discussion :
rf7bfl$jmj$
Le 21/07/20 à 11:55, Péhemme a écrit :
Bonjour Denis,
(coucou à Jacques en passant)
Je n'ai pas réussi à faire fonctionner ta 2nd proposition.
J'ai certainement mal adapté la macro proposée.
Cela dit, il faut être particulièrement pervers pour saisir des dates sous
des formats différents dans un champ donné.
;-))
Si tu veux t'amuser j'ai mis mon fichier à l'adresse suivante :
https://www.cjoint.com/c/JGvpW18lDIc

Dans ma macro, j'utilise le format de cellule J mmmm aaaa,
dans ton fichier le format des dates en colonne A est :
[$-F800]jjjj, mmmm jj, aaaa
Dans la fenêtre "Format de cellules / nombre / date / tu as omis de lire
les quelques lignes dans le bas de la page. Si tu utilises les formats
"date" prédéterminés ayant un astérisque comme premier caractère, cette
section [$-F800] est ajoutée au format représentant le paramètre
régional de France (ou du pays en question). Si tu utilises un format
personnalisé "j mmmm aaaa" le format sera bien j mmmm aaaa et non
[$-F800]jjjj, mmmm jj, aaaa et la macro devrait fonctionner. Si tu
préfères, tu modifies le format date utilisé
dans la macro et le résultat devrait être bon aussi.
Salut capitaine... ;-)
MichD
Poster une réponse
Anonyme