bonjour à tous
j'utilise cette macro trouvé dans le forum pour renvoyer des valeurs dans un fichier fermé.
mon problème est le suivant:
j'ai un cellule comportant une valeur au format [hh]:mm exemple 36:00
mais je ne parvient pas à renvoyer correctement cette valeur. une valeur est renvoyer dans le fichier fermé mais ne correspond pas à la valeur de départ.
la ligne de commande que j'utilise est la suivante:
.Fields(14) = Format(CDate(Sheets("FINAL").Range("R34")), "[hh]:mm")
y a t'il un format particulier à définir pour obtenir le bon résultat??
le code complet est le suivant:
Sub Macro2()
Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Fichier As String, Cible As String, Feuille As String
Dim i As Byte
Dte = Format(Date, "dd/mm/yy")
Hre = Format(Now, "hh:mm")
Fichier = "C:\Documents and Settings\titin\Bureau\fichierFerme.xls"
Feuille = "lien$"
Set Cn = New ADODB.Connection
Cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & Fichier & ";" & _
"extended properties=""Excel 8.0;"""
Cible = "SELECT * FROM [" & Feuille & "];"
Set Rs = New Recordset
Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
With Rs
.AddNew
.Fields(0) = Sheets("Feuil1").Range("F9")
.Fields(1) = Format(CDate(Sheets("Feuil1").Range("H9")), "hh:mm")
.Fields(2) = Dte
.Fields(3) = Hre
.Fields(4) = Sheets("FINAL").Range("CS28")
.Fields(5) = Sheets("FINAL").Range("A4")
.Fields(6) = Sheets("FINAL").Range("E4")
.Fields(7) = Sheets("FINAL").Range("C28")
.Fields(8) = Sheets("FINAL").Range("E28")
.Fields(9) = Sheets("FINAL").Range("G30")
.Fields(10) = Sheets("FINAL").Range("M30")
.Fields(11) = Sheets("FINAL").Range("N34") 'nb portique
.Fields(12) = Format(Sheets("FINAL").Range("P34"), "#0.0") 'moyenne
.Fields(13) = Format(Sheets("FINAL").Range("Q34"), "#0.0") 'estimation moyenne
.Fields(14) = Format(CDate(Sheets("FINAL").Range("R34")), "[hh]:mm")
.Update
End With
Rs.Close
Cn.Close
End Sub
merci pour vos conseils