Rechercher date et heure

ouali

XLDnaute Junior
Bonjour le forum,

J'utilise un petit bout de code qui me permet de retrouver le numéro de ligne où se trouve une date que je saisie.

Je vous explique j'ai des fichiers qui contiennent beaucoup de mesure. Dans mon classeur excel, je rentre une date dans la cellule que j'appelle "debut". Et ensuite je veux retrouver dans un autre classeur le numéro de ligne (lignedebut) où se trouve cette date.

Voici le bout de code

Code:
lignedebut = 1

        Do  ' Permet de trouver la première cellule (ligne) ou se trouve la date du début
            lignedebut = lignedebut + 1
            inter = CDate(Replace(Range("A" & lignedebut), ".", ","))
        Loop Until InStr(1, inter, debut) > 0

Ce code marche très bien. Or, j'aimerais faire la même chose mais en plus de la date, la cellule "debut" contient également l'heure et ce code ci-dessus ne fonctionne qu'avec la date.

Avez-vous une idée pour résoudre mon problème ?

J'espère avoir été clair. Merci d'avance
 

ouali

XLDnaute Junior
Re : Rechercher date et heure

Ah en fait j'ai parlé trop vite !! En utilisant cette fonction, la code "accepte d'aller lire la date dans une cellule qui contient la date et l'heure, or il ne tient pas compte de l'heure. Je m'explique, j'effectue des mesures toutes les 15 min. J'aimerais tenir compte des mesures allant du 14 juillet à 15h au 16 juillet à 17h. Avec ce code, il me trouve la première cellule où il y a le 14 juillet et la dernière cellule où il y a le 16 juillet. Mias il ne tient pas compte de l'heure.J'aimerais trouver la cellule du 14 juillet à 15h.

En modifiant la ligne de code que tu me proposes, il ne tient tjs pas compte de l'heure, il accepte juste d'aller lire la date dans une cellule qui a un format date et heure.

Voici mon fichier si jamais
 

Pièces jointes

  • Programme Mesures.zip
    48.9 KB · Affichages: 44

job75

XLDnaute Barbatruc
Re : Rechercher date et heure

Re,

Sachez que la comparaison des heures est quelque fois problématique.

En effet une heure est un nombre décimal, et il peut donc y avoir 15 décimales.

Par exemple 17:00:00 => 0,708333333333333

Et la dernière décimale est parfois aléatoire dans les calculs.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Rechercher date et heure

Re,

Pour trouver la date et l'heure (à la minute près) :

Code:
Loop Until Format(inter, "h:m") = Format(debut, "h:m")

Nota : méfiez-vous avec votre code : si debut n'est pas trouvé, la macro ira jusqu'à la fin de la colonne A et beuguera.

A+
 

ouali

XLDnaute Junior
Re : Rechercher date et heure

Ok pourtant dans le fichier de base .log l'heure est bien codée et en choisissant le format date et heure, on obtient bien les bonnes heures et dates.

Je pensais alors qu'il était possible de retrouver une heure. Le code que vous me proposiez est quand même uniquement pour les dates ?
et non les heures ?

A bientôt
 

ouali

XLDnaute Junior
Re : Rechercher date et heure

Ah ok oui apparemment vous fatiguez, vous aviez plutôt oublié l'heure !!

Malheureusement ca ne marche tjs pas j 'ai une erreur sur la ligne inter(...). Je pense que cela vient du dateValue. En effet, il ne voit que la date et pas l'heure c'est bien cela ? savez-vous ce que je dois mettre ?

Voici le bout de code modifier
Code:
Do  ' Permet de trouver la première cellule (ligne) ou se trouve la date du début
            lignedebut = lignedebut + 1
            inter = DateValue(Replace(Range("A" & lignedebut), ".", ","))
        Loop Until Format(inter, "dd.mm.yyyy hh:mm") = Format(debut, "dd.mm.yyyy hh:mm")

Merci d'avance
 

ouali

XLDnaute Junior
Re : Rechercher date et heure

Ah ca ne marche pas. En fait, apparemment il me donne la première date qui se trouve dans mon fichier. Si j'ai bien compris il ne cherche pas la valeur exacte (date et heure) même le même format de la cellule.

De plus, j'ai une deuxième boucle qui se situe juste après qui trouve la date de fin et j'ai une erreur qui apparait "incompatibilté de type".
Pourtan c'est presque la même boucle et je n'ai pas d'erreur à la première boucle.
Code:
Do ' Permet de trouver la première cellule (ligne)en partant du bas ou se trouve la date de fin
            L = L - 1
            inter = CDate(Replace(Range("A" & L), ".", ","))
        Loop Until Format(inter, "dd.mm.yyyy hh:mm") = Format(fin, "dd.mm.yyyy hh:mm")

En tout cas merci pour ton aide et si vous avez encore un peu d'énergie c'est volontiers :)
 

ouali

XLDnaute Junior
Re : Rechercher date et heure

Voila alors apparemment le code suivant à l'air de bien fonctionner !!

Merci encore pour votre aide et bonne journée

Do ' Permet de trouver la première cellule (ligne) ou se trouve la date du début
lignedebut = lignedebut + 1
inter = CDate(Replace(Range("A" & lignedebut), ".", ","))
Loop Until InStr(inter, CDate(debut))
 

Discussions similaires

Réponses
6
Affichages
382

Statistiques des forums

Discussions
312 298
Messages
2 086 977
Membres
103 416
dernier inscrit
SEB28110