Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

méthode ADO fichier fermé ??

  • Initiateur de la discussion Initiateur de la discussion jtitin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
22
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…