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

CDate

2 réponses
Avatar
WS
Bonjour,

J'ai le code suivant:

Sub test()

Open "I:\test.txt" For Input As #1
Input #1, ligne
heure =3D Right(ligne, 8)
Close #1
deb =3D Time
heure =3D CDate(heure)

MsgBox CDate(deb - heure)

End Sub

La messagebox de fin me fait bien le delta entre deb et=20
heure lorceque le code est ex=E9cut=E9 avec le VBA Excel mais=20
lorsqu'il est ex=E9cut=E9 avec VB6, j'ai un message d'erreur=20
qui me dit qu'il y a une imcompatibilit=E9 de type.

Est-ce que qqn a d=E9ja eu affaire =E0 de pb?

Merci d'avance de votre aide.

WS

2 réponses

Avatar
Patrice Henrio
Il faudrait mettre des balises pour savoir où se trouve réellement l'erreur.

Sub test()

Open "I:test.txt" For Input As #1
Input #1, ligne
heure = Right(ligne, 8)
>>> msgbox "pas d'erreur pour Right"
Close #1
deb = Time
heure = CDate(heure)
msgbox "pas d'erreur pour CDate"







MsgBox CDate(deb - heure)
msgbox "pas d'erreur pour deb-heure"







End Sub

Voici mon interprétation pour avoir déjà cette plaisanterie : le format dans
le fichier texte est reconnu par VBA pour un format d'heure mais pas dans
VB. J'avais ce problème avec le point décimal et la virgule dasn un fichier
texte : VBA acceptait l'un et VB voulait l'autre.


"WS" a écrit dans le message de news:
1b7d01c4a7fe$4a03c7b0$
Bonjour,

J'ai le code suivant:

Sub test()

Open "I:test.txt" For Input As #1
Input #1, ligne
heure = Right(ligne, 8)
msgbox "pas d'erreur pour Right"
Close #1
deb = Time
heure = CDate(heure)
msgbox "pas d'erreur pour CDate"

MsgBox CDate(deb - heure)
msgbox "pas d'erreur pour deb-heure"

End Sub

La messagebox de fin me fait bien le delta entre deb et
heure lorceque le code est exécuté avec le VBA Excel mais
lorsqu'il est exécuté avec VB6, j'ai un message d'erreur
qui me dit qu'il y a une imcompatibilité de type.

Est-ce que qqn a déja eu affaire à de pb?

Merci d'avance de votre aide.

WS
Avatar
François Picalausa
Hello,

J'ajouterais l'affichage des valeurs récupérées ce qui permettrait de se
faire une idée de pourquoi ça n'a pas marché:
Open "I:test.txt" For Input As #1
Input #1, ligne
heure = Right(ligne, 8)
msgbox "pas d'erreur pour Right; valeur d'heure : " & heure
Close #1
deb = Time
heure = CDate(heure)
msgbox "pas d'erreur pour CDate; valeur d'heure : " & heure

Par contre, ce code implique qu'heure soit un variant... (lent, gros)
On pourrait le typer en Date et réutiliser ligne:
Dim Ligne As String, Heure As Date, Deb As Date

Open "I:test.txt" For Input As #1
Input #1, Ligne
Ligne = Right(Ligne, 8)
msgbox "pas d'erreur pour Right; valeur d'heure : " & Ligne
Close #1
deb = Time
Heure = CDate(Ligne)
msgbox "pas d'erreur pour CDate; valeur d'heure : " & heure

--
François Picalausa

"Patrice Henrio" a écrit dans le message
de news: OV$
Il faudrait mettre des balises pour savoir où se trouve réellement
l'erreur.
Sub test()

Open "I:test.txt" For Input As #1
Input #1, ligne
heure = Right(ligne, 8)
msgbox "pas d'erreur pour Right"






Close #1
deb = Time
heure = CDate(heure)
msgbox "pas d'erreur pour CDate"







MsgBox CDate(deb - heure)
msgbox "pas d'erreur pour deb-heure"







End Sub

Voici mon interprétation pour avoir déjà cette plaisanterie : le
format dans le fichier texte est reconnu par VBA pour un format
d'heure mais pas dans VB. J'avais ce problème avec le point décimal
et la virgule dasn un fichier texte : VBA acceptait l'un et VB
voulait l'autre.

"WS" a écrit dans le message de
news: 1b7d01c4a7fe$4a03c7b0$
Bonjour,

J'ai le code suivant:

Sub test()

Open "I:test.txt" For Input As #1
Input #1, ligne
heure = Right(ligne, 8)
msgbox "pas d'erreur pour Right"
Close #1
deb = Time
heure = CDate(heure)
msgbox "pas d'erreur pour CDate"

MsgBox CDate(deb - heure)
msgbox "pas d'erreur pour deb-heure"

End Sub

La messagebox de fin me fait bien le delta entre deb et
heure lorceque le code est exécuté avec le VBA Excel mais
lorsqu'il est exécuté avec VB6, j'ai un message d'erreur
qui me dit qu'il y a une imcompatibilité de type.

Est-ce que qqn a déja eu affaire à de pb?

Merci d'avance de votre aide.

WS