méthode ADO fichier fermé ??

jtitin

XLDnaute Occasionnel
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
 
G

Guest

Guest
Re : méthode ADO fichier fermé ??

bonjour,

Excel et Ado ne font parfois pas bon ménage parcequ'enfin XL n'est pas une SGBD. Ado insère les valeurs numériques au format text dans XL. Aussi dans ton cas, je passerais par une variable avant de l'insérer dans le Recordset (Rs)

LaVariable=Format(CDate(Sheets("FINAL").Range("R34")), "[hh]:mm")

with RS

......
Fields(14)=LaVariable
.upDate
End with

A bientôt
 

jtitin

XLDnaute Occasionnel
Re : méthode ADO fichier fermé ??

merci Hasco pour ta réponse
mais cela ne marche pas
j'ai 05:00 et ça me renvoi ':12
j'ai 27:00 et ça me renvoi ':12
les cellules de réceptions sont formatées [hh]:mm

si quelqu'un à une idée

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 698
dernier inscrit
miespetico