Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Methode Find avec des dates (en vba)

2 réponses
Avatar
Pierre TISSENDIER
Bonjour,
Dans une feuille excel il y a une colonne qui contient des dates sous la
forme jj/mm/aaaa hh:mm:ss.
Je voudrais trouver (après avoir trié la colonne en décroissant ) la premier
ligne et la derniere ligne qui contiennent une date (de la forme
jj/mm/aaaa).
Voici mon code :
DateCherche = "27/12/2007"
With Fsource.Range("F:F")
Ldebut = .Find(clng(DateCherche),, .Item(1), , xlFormula, , xlNext).Row
LFin = .Find(clng(DateCherche),, .Item(1), ,xlFormula , ,
xlPrevious).Row
End With
Merci de me dire comment faire pour que ça marche ou me dire si ça ne
marchera jamais!

a vous lire encore merci

2 réponses

Avatar
MichDenis
La méthode est alambiquée lorsqu'il s'agit de retrouver une "date".

Tu dois t'assurer que toute la colonne F:F a un format de date
identique à la "date court" du panneau de configuration nonobstant
le fait qu'elle affiche en plus les heures / minutes / secondes. Dans un
tel cas, ce qui suit est possible

Pourquoi ? Parce que lorsqu'une variable est affublé du type "Date"
sa valeur prend automatiquement le format "date court" du panneau
de configuration.

En plus dans le cas présent, l'utilisation de la fonction de conversion Cdate()
renvoie aussi une date au format "date court" du panneau de confuguration.

Et tu dois te rappeler que la méthode recherche "TOUJOURS" une chaîne
de caractère et non la valeur numérique que représente une date pour excel.

Voilà pour l'essentiel.

Ce qui suit devrait fonctionner avec les restriction mentionnées précédemment.

Dim DateCherche As Date
DateCherche = CDate(Date)

Fsource.Range("F:F")
Ldebut = .Find(What:ÚteCherche, after:=.Item(1, 1), _
Lookat:=xlPart, LookIn:=xlValues, _
SearchDirection:=xlNext).Row
LFin = .Find(What:ÚteCherche, after:=.Item(1, 1), _
Lookat:=xlPart, LookIn:=xlValues, _
SearchDirection:=xlPrevious).Row
End With






"Pierre TISSENDIER" a écrit dans le message de news:

Bonjour,
Dans une feuille excel il y a une colonne qui contient des dates sous la
forme jj/mm/aaaa hh:mm:ss.
Je voudrais trouver (après avoir trié la colonne en décroissant ) la premier
ligne et la derniere ligne qui contiennent une date (de la forme
jj/mm/aaaa).
Voici mon code :
DateCherche = "27/12/2007"
With Fsource.Range("F:F")
Ldebut = .Find(clng(DateCherche),, .Item(1), , xlFormula, , xlNext).Row
LFin = .Find(clng(DateCherche),, .Item(1), ,xlFormula , ,
xlPrevious).Row
End With
Merci de me dire comment faire pour que ça marche ou me dire si ça ne
marchera jamais!

a vous lire encore merci
Avatar
Pierre TISSENDIER
Merci

Ca marche!

A bientot

"MichDenis" a écrit dans le message de news:
%
La méthode est alambiquée lorsqu'il s'agit de retrouver une "date".

Tu dois t'assurer que toute la colonne F:F a un format de date
identique à la "date court" du panneau de configuration nonobstant
le fait qu'elle affiche en plus les heures / minutes / secondes. Dans un
tel cas, ce qui suit est possible

Pourquoi ? Parce que lorsqu'une variable est affublé du type "Date"
sa valeur prend automatiquement le format "date court" du panneau
de configuration.

En plus dans le cas présent, l'utilisation de la fonction de conversion
Cdate()
renvoie aussi une date au format "date court" du panneau de confuguration.

Et tu dois te rappeler que la méthode recherche "TOUJOURS" une chaîne
de caractère et non la valeur numérique que représente une date pour
excel.

Voilà pour l'essentiel.

Ce qui suit devrait fonctionner avec les restriction mentionnées
précédemment.

Dim DateCherche As Date
DateCherche = CDate(Date)

Fsource.Range("F:F")
Ldebut = .Find(What:ÚteCherche, after:=.Item(1, 1), _
Lookat:=xlPart, LookIn:=xlValues, _
SearchDirection:=xlNext).Row
LFin = .Find(What:ÚteCherche, after:=.Item(1, 1), _
Lookat:=xlPart, LookIn:=xlValues, _
SearchDirection:=xlPrevious).Row
End With






"Pierre TISSENDIER" a écrit dans le
message de news:

Bonjour,
Dans une feuille excel il y a une colonne qui contient des dates sous la
forme jj/mm/aaaa hh:mm:ss.
Je voudrais trouver (après avoir trié la colonne en décroissant ) la
premier
ligne et la derniere ligne qui contiennent une date (de la forme
jj/mm/aaaa).
Voici mon code :
DateCherche = "27/12/2007"
With Fsource.Range("F:F")
Ldebut = .Find(clng(DateCherche),, .Item(1), , xlFormula, , xlNext).Row
LFin = .Find(clng(DateCherche),, .Item(1), ,xlFormula , ,
xlPrevious).Row
End With
Merci de me dire comment faire pour que ça marche ou me dire si ça ne
marchera jamais!

a vous lire encore merci