rch05
Messages postés32Date d'inscriptionsamedi 6 janvier 2007StatutMembreDernière intervention 5 mars 2015
-
22 sept. 2010 à 13:20
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
22 sept. 2010 à 16:40
Bonjour,
J'exporte des données d'Access vers Excel.
Les dates ne sont pas converties dans la feuille Excel.
Ci-dessous le code:
Do While Not rst.EOF
For j = 0 To rst.Fields.Count - 1
'si c'est du texte (dbText) on insére "'" pour qu'il soit
'reconnu par EXCEL comme texte
If rst.Fields(j).Type = dbText Then
xlSheet.Cells(i, j + 1) = "'" & rst.Fields(j)
Else
'si c'est une date (dbDate) "jj/mm/aaaa" pour qu'il soit
'reconnu par EXCEL comme une date
If rst.Fields(j).Type = dbDate Then
xlSheet.Cells(i, j + 1).NumberFormat = "jj/mm/aaaa"
xlSheet.Cells(i, j + 1) = rst.Fields(j)
xlSheet.Cells(i, j + 1).AutoFormat
Else
xlSheet.Cells(i, j + 1) = rst.Fields(j)
End If
End If
Next j
i = i + 1
rst.MoveNext
Loop
J'ai essayé avec dd/mm/yyyy, idem
Les champs dans Access sont de type: Date,Abrégé
Merci d'avance de votre aide
Christian
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 22 sept. 2010 à 14:31
Salut
Quand comprendras-tu que le VB des applications office est du VBA ?
Cela est important pour que les membres perdent leur temps à répondre dans un langage que tu ne pourras pas appliquer ...
Ah, les dates sous Excel !
Deux choses à vérifier :
- Est-ce que le .AutoFormat ne vient pas annuler ton précédent .NumberFormat ?
- Dans la ligne suivante, il faudrait compléter la syntaxe pour éviter que le compilateur interprète (mal) les données :
xlSheet.Cells(i, j + 1) = rst.Fields(j)
-> Cells.Value
-> Cells.Value2
-> Cells.Text
Chacun de ces attributs à un rôle particulier - vérifie dans l'aide de Excel.
Profites-en pour compléter la syntaxe côté Access :
... rst.Fields(j).Value
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)