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

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

5 réponses
Avatar
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=24
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.

5 réponses

Avatar
bipbipcoyote
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.




.



Avatar
isabelle
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.


Avatar
Franck
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" a écrit dans le message
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.




.



Avatar
Franck
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" a écrit dans le message de
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.




Avatar
Franck
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" a écrit dans le message de
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.