[Déplacé VB6 --> VBA] Problème de format de date

laurent3759 Messages postés 3 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 14 octobre 2009 - 13 oct. 2009 à 22:05
laurent3759 Messages postés 3 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 14 octobre 2009 - 14 oct. 2009 à 09:02
Bonjour à Tous,

Je me confronte à un problème depuis hier, j'envois vers un fichier non ouvert (AD0) différentes données contenues dans des variables dont une date. la variable est déclaré as a date, le problème c'est qu'elle ne réagis plus comme une date dans le fichier de stockage.

Problème étant, le format s'affiche comme une date dans le fichier de stockage. Afin que la cellule régissent comme une date, il faut cliquer dessus aller dans la barre de modification et valider par la touche retour à la ligne.

je suis complètement bloqué et requiert votre aide. merci (c'est la variable LaDate)

Concrètement mon code d'envoi :

Dim Cn As ADODB.Connection
Dim Fichier As String, Feuille As String, strSQL As String
Dim LaDate As Date
Dim Montant As Integer
Dim MontantRéglé As Integer
Dim Situation As Integer
Dim Compte As String
Fichier = ActiveWorkbook.Path & "\data.xls"
Feuille = "Feuil1"

'Les données à insérer:


Compte = Mid(Worksheets("Facture simple").Cells(15, 1).Value, 8)
Libellé = TextBox1
Typedecompte = "Client"
LaDate = Format(Now, "dd/mm/yyyy")
Montant = Worksheets("Facture simple").Cells(41, 5).Value
MontantRéglé = "0"
Situation = Worksheets("Facture simple").Cells(41, 5).Value


Set Cn = New ADODB.Connection
With Cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & Fichier & "; ReadOnly=False;"
.Open
End With


'Les données doivent être indiquées dans le même ordre que les champs dans la base de données.
strSQL = "INSERT INTO [" & Feuille & "$] " _
& "VALUES ('" & Compte & "', " & _
"'" & Libellé & "', " & _
"'" & Typedecompte & "', " & _
"'" & LaDate & "', " & _
"'" & Montant & "', " & _
"'" & MontantRéglé & "', " & _
Situation & ")"
Cn.Execute strSQL
Cn.Close
Set Cn = Nothing

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 oct. 2009 à 01:23
Salut
"j'envois vers un fichier non ouvert"
Bizarre. Je me demande où passent les données ...

"le problème c'est qu'elle ne réagis plus comme une date dans le fichier de stockage"
puis
"le format s'affiche comme une date dans le fichier de stockage"
Que faut-il comprendre ?

Les cellules ne sont que des outils d'affichage.
Si tu mets une date dans une cellule, il y a x% de risque que Excel ne la reconnaisse pas : Dans ce cas, il suffit de définir toi même le format de la cellule (Menu "Format", "Cellule", "Catégorie" : Date ...)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
laurent3759 Messages postés 3 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 14 octobre 2009
14 oct. 2009 à 08:58
BOnjour,

Je te remercie d'avoir pris le temps d'étudier ma question. J'ai également changé le format dans la feuille de destination avant et après que les données y soient insérées , le problème est toujours le même, les données sont dans le format date mais n'interagissent pas comme telles.

Pour êter concret les dates s'affichent à droite dans les cellules, ici elles sont a gauche comme du texte et si tu clique sur la cellule et que tu te place dans la barre d'édition et tu valide cela rend le format valide. Mais cela n'est qu'une solution de bricolage. Je cherche bien évidemment l'automatisation complète.

Merci
0
laurent3759 Messages postés 3 Date d'inscription mardi 13 octobre 2009 Statut Membre Dernière intervention 14 octobre 2009
14 oct. 2009 à 09:02
Rebonjour,

Tu me pose la question du fichier, sur excel tu peux interagir avec un fichier non ouvert tu utilise ne méthode de conexion ADO. Cela permet de gagner du temps et d'utiliser une base de données non ouvertes.

Merci
0
Rejoignez-nous