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
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