Problème lors d'une recherche d'une heure (calculée) dans une colonne d'heures(fixes)

Le
Franck
Bonjours,

Je cherche à trouver la bonne routine qui me renverrait le numéro de ligne
sur une recherche d'heure.

Voici un exemple de mon code :

dim débutmesure1var as date, finmesure1var as date
débutmesure1var = Range("g3").Value
finmesure1var = Range("g4").Value
lig$
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = débutmesure1var
tabligdébfinp123(1) = lig
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = finmesure1var
tabligdébfinp123(2) = lig

La première boucle me renvoie la bonne valeur, alors que la seconde
ne trouve rien et me renvoie une erreur 1004.
La première heure "débutmesure1var" est une heure fixe, c'est peut être pour
cela
que le test fonctionne. Par contre, la seconde "finmesure1var" est une heure
calculée.
Pourtant cette seconde heure existe bien dans la colonne de recherche.
J'ai alors comparé ces 2 valeurs en format numérique :
Heure dont on doit renvoyer le
numéros de ligne : 15h06:07 ou 0,629244212962963 en numérique
et finmesure1var : 15h06:07 ou 0,629248457790123 en numérique
Valeurs identique au format hh:mm:ss MAIS différentes en numérique.

Mon problème vient-il de là ?
Et comment le résoudre ?

Merci d'avances pour vos réponses.

Franck.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
bipbipcoyote
Le #1279218
qu'est ce que "tabligdébfinp123(1) = lig" ? quel est son
type ? à quoi ça sert ? es tu sûr de rencontrer la
condition de sortie des boucles ? quand lig entre dans la
seconde boucle (pour la première fois) il a déjà la
valeur de 25 est-ce bien ce que tu recherches ?


-----Message d'origine-----
Bonjours,

Je cherche à trouver la bonne routine qui me renverrait
le numéro de ligne

sur une recherche d'heure.

Voici un exemple de mon code :

dim débutmesure1var as date, finmesure1var as date
débutmesure1var = Range("g3").Value
finmesure1var = Range("g4").Value
lig$
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = débutmesure1var
tabligdébfinp123(1) = lig
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = finmesure1var
tabligdébfinp123(2) = lig

La première boucle me renvoie la bonne valeur, alors que
la seconde

ne trouve rien et me renvoie une erreur 1004.
La première heure "débutmesure1var" est une heure fixe,
c'est peut être pour

cela
que le test fonctionne. Par contre, la
seconde "finmesure1var" est une heure

calculée.
Pourtant cette seconde heure existe bien dans la colonne
de recherche.

J'ai alors comparé ces 2 valeurs en format numérique :
Heure dont on doit renvoyer le
numéros de ligne : 15h06:07 ou 0,629244212962963 en
numérique

et finmesure1var : 15h06:07 ou 0,629248457790123 en
numérique

Valeurs identique au format hh:mm:ss MAIS différentes en
numérique.


Mon problème vient-il de là ?
Et comment le résoudre ?

Merci d'avances pour vos réponses.

Franck.




.



isabelle
Le #1279217
bonjour Franck,

une solution serait de mettre les deux valeurs au même format

Loop Until Format(Cells(lig, 1).Value, "00.00000") = _
Format(débutmesure1var, "00.00000")

isabelle


Bonjours,

Je cherche à trouver la bonne routine qui me renverrait le numéro de ligne
sur une recherche d'heure.

Voici un exemple de mon code :

dim débutmesure1var as date, finmesure1var as date
débutmesure1var = Range("g3").Value
finmesure1var = Range("g4").Value
lig$
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = débutmesure1var
tabligdébfinp123(1) = lig
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = finmesure1var
tabligdébfinp123(2) = lig

La première boucle me renvoie la bonne valeur, alors que la seconde
ne trouve rien et me renvoie une erreur 1004.
La première heure "débutmesure1var" est une heure fixe, c'est peut être pour
cela
que le test fonctionne. Par contre, la seconde "finmesure1var" est une heure
calculée.
Pourtant cette seconde heure existe bien dans la colonne de recherche.
J'ai alors comparé ces 2 valeurs en format numérique :
Heure dont on doit renvoyer le
numéros de ligne : 15h06:07 ou 0,629244212962963 en numérique
et finmesure1var : 15h06:07 ou 0,629248457790123 en numérique
Valeurs identique au format hh:mm:ss MAIS différentes en numérique.

Mon problème vient-il de là ?
Et comment le résoudre ?

Merci d'avances pour vos réponses.

Franck.


Franck
Le #1239206
Bonsoir

"tabligdébfinp123" est un tableau qui sert seulement à stocker les numéros
de ligne
des heures trouver. Mais le problème n'est pas là,
Je vais tester la soluce d'Isabelle.

Franck.

"bipbipcoyote" de news:1665601c41f55$82cf9560$
qu'est ce que "tabligdébfinp123(1) = lig" ? quel est son
type ? à quoi ça sert ? es tu sûr de rencontrer la
condition de sortie des boucles ? quand lig entre dans la
seconde boucle (pour la première fois) il a déjà la
valeur de 25 est-ce bien ce que tu recherches ?


-----Message d'origine-----
Bonjours,

Je cherche à trouver la bonne routine qui me renverrait
le numéro de ligne

sur une recherche d'heure.

Voici un exemple de mon code :

dim débutmesure1var as date, finmesure1var as date
débutmesure1var = Range("g3").Value
finmesure1var = Range("g4").Value
lig$
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = débutmesure1var
tabligdébfinp123(1) = lig
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = finmesure1var
tabligdébfinp123(2) = lig

La première boucle me renvoie la bonne valeur, alors que
la seconde

ne trouve rien et me renvoie une erreur 1004.
La première heure "débutmesure1var" est une heure fixe,
c'est peut être pour

cela
que le test fonctionne. Par contre, la
seconde "finmesure1var" est une heure

calculée.
Pourtant cette seconde heure existe bien dans la colonne
de recherche.

J'ai alors comparé ces 2 valeurs en format numérique :
Heure dont on doit renvoyer le
numéros de ligne : 15h06:07 ou 0,629244212962963 en
numérique

et finmesure1var : 15h06:07 ou 0,629248457790123 en
numérique

Valeurs identique au format hh:mm:ss MAIS différentes en
numérique.


Mon problème vient-il de là ?
Et comment le résoudre ?

Merci d'avances pour vos réponses.

Franck.




.



Franck
Le #1279203
Bonjours Isabelle,

J'avais aussi pensé de convertir toutes mes heures au format string,
mais ta solution est plus simple, à condition que la 5ième décimales ne soit
pas
arrondi sinon cela ne marcherait pas.

Après un dimanche familiale bien arrosé, retour à la programmation...
Je vais essayer ça tout de suite.

Franck.



"isabelle" news:
bonjour Franck,

une solution serait de mettre les deux valeurs au même format

Loop Until Format(Cells(lig, 1).Value, "00.00000") = _
Format(débutmesure1var, "00.00000")

isabelle


Bonjours,

Je cherche à trouver la bonne routine qui me renverrait le numéro de
ligne


sur une recherche d'heure.

Voici un exemple de mon code :

dim débutmesure1var as date, finmesure1var as date
débutmesure1var = Range("g3").Value
finmesure1var = Range("g4").Value
lig$
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = débutmesure1var
tabligdébfinp123(1) = lig
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = finmesure1var
tabligdébfinp123(2) = lig

La première boucle me renvoie la bonne valeur, alors que la seconde
ne trouve rien et me renvoie une erreur 1004.
La première heure "débutmesure1var" est une heure fixe, c'est peut être
pour


cela
que le test fonctionne. Par contre, la seconde "finmesure1var" est une
heure


calculée.
Pourtant cette seconde heure existe bien dans la colonne de recherche.
J'ai alors comparé ces 2 valeurs en format numérique :
Heure dont on doit renvoyer le
numéros de ligne : 15h06:07 ou 0,629244212962963 en numérique
et finmesure1var : 15h06:07 ou 0,629248457790123 en numérique
Valeurs identique au format hh:mm:ss MAIS différentes en numérique.

Mon problème vient-il de là ?
Et comment le résoudre ?

Merci d'avances pour vos réponses.

Franck.




Franck
Le #1279197
Re boujours Isabelle,

c'est bien ce que je pensais, la valeur est arrondi :
(1) 15h06:07 ou 0,629244212962963 devient 0,62924 formaté
(2) 15h06:07 ou 0,629248457790123 devient 0,62925 formaté

La solution que je pensais, la conversion en string :

Loop Until Format(Cells(lig, 1).Value, "hh:mm:ss") = _
Format(débutmesure1var, "hh:mm:ss")


et là tout marche sans problème.

Merci et a+

Franck.


"isabelle" news:
bonjour Franck,

une solution serait de mettre les deux valeurs au même format

Loop Until Format(Cells(lig, 1).Value, "00.00000") = _
Format(débutmesure1var, "00.00000")

isabelle


Bonjours,

Je cherche à trouver la bonne routine qui me renverrait le numéro de
ligne


sur une recherche d'heure.

Voici un exemple de mon code :

dim débutmesure1var as date, finmesure1var as date
débutmesure1var = Range("g3").Value
finmesure1var = Range("g4").Value
lig$
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = débutmesure1var
tabligdébfinp123(1) = lig
Do
lig = lig + 1
Loop Until Cells(lig, 1).Value = finmesure1var
tabligdébfinp123(2) = lig

La première boucle me renvoie la bonne valeur, alors que la seconde
ne trouve rien et me renvoie une erreur 1004.
La première heure "débutmesure1var" est une heure fixe, c'est peut être
pour


cela
que le test fonctionne. Par contre, la seconde "finmesure1var" est une
heure


calculée.
Pourtant cette seconde heure existe bien dans la colonne de recherche.
J'ai alors comparé ces 2 valeurs en format numérique :
Heure dont on doit renvoyer le
numéros de ligne : 15h06:07 ou 0,629244212962963 en numérique
et finmesure1var : 15h06:07 ou 0,629248457790123 en numérique
Valeurs identique au format hh:mm:ss MAIS différentes en numérique.

Mon problème vient-il de là ?
Et comment le résoudre ?

Merci d'avances pour vos réponses.

Franck.




Publicité
Poster une réponse
Anonyme