Forcer l'écriture des variables en hh:mm:ss

Bonjour à tous

J'ai un petit soucis avec l'écriture d'un variable

Déclaration:

Dim H_Attente As Date
Dim H_Contr As Date
Dim H_Fin As Date

Acquisition des données:

H_Attente = Ws.Range("K17").Value
H_Contr = Ws.Range("M17").Value
H_Fin = Ws.Range("O17").Value

Résultat;

hhmm

Dès que je dépasse 24h00 ça passe en format #31/12/1899 05:00:00#

Alors que dans ma cellule de départ j'ai 32;00

En dessous de 24h00 j'obtiens comme H_Contr soit : #02;00;00#

Les valeur sont ensuite sauvegardées dans un fichier txt

J'ai fait plusieurs test pris ça et la sur le net mais rien de convainquant.

Auriez vous une idée ?

Cordialement Eric L

Bonjour,

une date reste une valeur numérique, que l'on peut ensuite afficher comme on veut. C'est le rôle du format d'affichage.
Si tu veux des heures >24 :
tempsTxt = Application.Text([A2], "[h]:mm")

[A2] peut être une de tes variables.

C'est moi ou tu confond ; et : ? Ca sème la confusion. Il faut lire 32,00 ou 32:00 ??? La rigueur ne fait jamais de mal
eric

Bonsoir Eric

effectivement j'ai fait une petite erreur entre ; et : ce que je cherche c'est 32:00.

Pour les formats de cellule j'ai essayer et ça me met tout mes graphiques en défauts et en plus je n'arrive pas à changer le format avec le format de cellule.

form

Sinon je ne vois pas comment utiliser le code ci dessous:

Doit-je l’exécuter sur l'appli N°1 avant l'enregistrement ?

ou sur la variable H_Attente ?

ou sur le cellules de l'appli N° 2 ?

tempsTxt = Application.Text([A2], "[h]:mm")

Les 32 heures sont calculées par ta fonction "delai_H-Ouv" de la version que tu m'a corriger .

depart

Le fichier txt est généré par l'application N°1(ci-dessus) que tu as en partie vue et qui sera sur plusieurs ordinateur.

Elle ajoute une ligne dans le txt à chaque enregistrement.

le txt:

txt

Puis le txt est récupéré dans une BDD via un autre poste et une deuxième application pour des calculs statistiques.

Dans l'image du txt les deux première ligne sont conformes et la dernière pause le problème cité plus haut.

Cordialement Eric.L

Bonjour,

avec le petit bout de code que tu as mis je ne sais pas comment tu utilises tes variables.
Ce que je t'ai mis c'était pour le mettre au format que tu voulais (32:00) dans une chaine (donc dans une variable As String) que tu peux écrire dans ton txt.
Ajoute :ss si tu veux afficher les secondes

Un graphique a besoin de valeurs numériques.
Dans une cellule tu dois mettre le format [h]:00
Si c'est juste la valeur lue dans l'espion qui te gêne ne t'en soucie pas, la valeur est correcte.

Si ta 2nde appli est également sur excel, il lui faudra convertir le texte en date numérique.
Ou bien tu inscris dans le fichier txt la vraie valeur numérique Cdbl(ta_variable_temps) , voire même Round(Cdbl(ta_variable_temps),6) si tu dois faire des tests dessus et que tu veux éviter les pertes de précision dues aux conversions décimal/binaire. A toi de lui mettre le bon format après écriture dans une cellule si elle ne l'a pas déjà.
eric

Bonsoir Eriiic

Finalement, j'ai réussi en mettant mes variable en As String

Dim H_Attente As String
Dim H_Contr As String
Dim H_Fin As String

Puis en utilisant un format personnalisé [h]:mm;@ dans la deuxième application (Excel) comme tu l'as suggéré.

Un grand merci a toi car j'aurais jamais pu faire tout ça tout seul.

Mais bon , Comme tu dis :"En essayant continuellement, on finit par réussir."

Le travail n'est pas fini car je compte ajouter d'autre options.

Cordialement Eric.L

Parfait

merci

Rechercher des sujets similaires à "forcer ecriture variables"