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

Export données horaire format texte

2 réponses
Avatar
Tendasque
Bonjour,
cette procédure fonctionne bien : (merci MichDenis)

Sub SaveAsTextFile()
Dim C As Variant, Nb As Long
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String, Sep As String
Sep = ";"
fFilename = "c:\chrono1.txt"
Nb = FreeFile
Open fFilename For Output As Nb
'Définir la plage de cellules
C = Range("b3:C5") ' à définir
For a = 1 To UBound(C, 1)
tmP = ""
For b = 1 To UBound(C, 2)
If tmP > "" Then
tmP = tmP & Sep & C(a, b)
Else
tmP = C(a, b)
End If
Next
Print #Nb, tmP
Next
Close #Nb
End Sub

mais:
- dans la colonne B j'ai des nombres entiers
- dans la colonne C j'ai des temps au format Excel 00:00:00
- la proc me sauvegarde comme ceci par ex:
1;4,88425926596392E-03
et je voudrais obtenir:
1;00hh07'02

Est-il possible d'obtenir cela directement ?
Merci de votre aide.

2 réponses

Avatar
michdenis
Bonjour,

Essaie ceci :

Il est présumé dans la procédure que tes temps sont en colonne B:B

'-----------------------------------------------
Sub SaveAsTextFile()
Dim C As Range, Nb As Long
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String, Sep As String

Sep = ";"
fFilename = "c:chrono1.txt"

Nb = FreeFile
Open fFilename For Output As Nb

'Définir la plage de cellules
With Worksheets("Feuil1")
Set C = .Range("A3:C10")
End With

For a = 1 To C.Rows.Count
tmP = ""
For b = 1 To C.Columns.Count
If tmP > "" Then
If C(a, b).Column = 2 Then
If IsDate(C(a, b)) Then
tmP = tmP & Sep & Format(C(a, b), "hh""hh""MM""'""SS")
Else
tmP = tmP & Sep & C(a, b)
End If
Else
tmP = tmP & Sep & C(a, b)
End If
Else
tmP = C(a, b)
End If
Next
Print #Nb, tmP
Next
Close #Nb
End Sub
'-----------------------------------------------




"Tendasque" <unss34(a_enlever)@free.fr> a écrit dans le message de groupe de discussion :

Bonjour,
cette procédure fonctionne bien : (merci MichDenis)

Sub SaveAsTextFile()
Dim C As Variant, Nb As Long
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String, Sep As String
Sep = ";"
fFilename = "c:chrono1.txt"
Nb = FreeFile
Open fFilename For Output As Nb
'Définir la plage de cellules
C = Range("b3:C5") ' à définir
For a = 1 To UBound(C, 1)
tmP = ""
For b = 1 To UBound(C, 2)
If tmP > "" Then
tmP = tmP & Sep & C(a, b)
Else
tmP = C(a, b)
End If
Next
Print #Nb, tmP
Next
Close #Nb
End Sub

mais:
- dans la colonne B j'ai des nombres entiers
- dans la colonne C j'ai des temps au format Excel 00:00:00
- la proc me sauvegarde comme ceci par ex:
1;4,88425926596392E-03
et je voudrais obtenir:
1;00hh07'02

Est-il possible d'obtenir cela directement ?
Merci de votre aide.
Avatar
Tendasque
Merci michdenis, je ne savais pas écrire:
tmP = tmP & Sep & Format(C(a, b), "hh""hh""MM""'""SS")
c'est bon maintenant

"michdenis" a écrit dans le message de news:
%
Bonjour,

Essaie ceci :

Il est présumé dans la procédure que tes temps sont en colonne B:B

'-----------------------------------------------
Sub SaveAsTextFile()
Dim C As Range, Nb As Long
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String, Sep As String

Sep = ";"
fFilename = "c:chrono1.txt"

Nb = FreeFile
Open fFilename For Output As Nb

'Définir la plage de cellules
With Worksheets("Feuil1")
Set C = .Range("A3:C10")
End With

For a = 1 To C.Rows.Count
tmP = ""
For b = 1 To C.Columns.Count
If tmP > "" Then
If C(a, b).Column = 2 Then
If IsDate(C(a, b)) Then
tmP = tmP & Sep & Format(C(a, b), "hh""hh""MM""'""SS")
Else
tmP = tmP & Sep & C(a, b)
End If
Else
tmP = tmP & Sep & C(a, b)
End If
Else
tmP = C(a, b)
End If
Next
Print #Nb, tmP
Next
Close #Nb
End Sub
'-----------------------------------------------




"Tendasque" <unss34(a_enlever)@free.fr> a écrit dans le message de groupe
de discussion :

Bonjour,
cette procédure fonctionne bien : (merci MichDenis)

Sub SaveAsTextFile()
Dim C As Variant, Nb As Long
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String, Sep As String
Sep = ";"
fFilename = "c:chrono1.txt"
Nb = FreeFile
Open fFilename For Output As Nb
'Définir la plage de cellules
C = Range("b3:C5") ' à définir
For a = 1 To UBound(C, 1)
tmP = ""
For b = 1 To UBound(C, 2)
If tmP > "" Then
tmP = tmP & Sep & C(a, b)
Else
tmP = C(a, b)
End If
Next
Print #Nb, tmP
Next
Close #Nb
End Sub

mais:
- dans la colonne B j'ai des nombres entiers
- dans la colonne C j'ai des temps au format Excel 00:00:00
- la proc me sauvegarde comme ceci par ex:
1;4,88425926596392E-03
et je voudrais obtenir:
1;00hh07'02

Est-il possible d'obtenir cela directement ?
Merci de votre aide.