Methode Find avec des dates (en vba)

Le
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5335711
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"
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
Pierre TISSENDIER
Le #5335641
Merci

Ca marche!

A bientot

"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" 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





Publicité
Poster une réponse
Anonyme