[Catégorie ENCORE et ENCORE modifiée .Net --> VBA] Pb de conversion date access

Résolu
rch05 Messages postés 32 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 5 mars 2015 - 22 sept. 2010 à 13:20
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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

4 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
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)
3
rch05 Messages postés 32 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 5 mars 2015
22 sept. 2010 à 15:13
salut Jack,

Je suis peut être au début d'alzheimer
J'avais compris access et vb.
Je tacherai de m'en souvenir pour la prochaine fois.

Ok,j'effectue les modifs et je te t'informe du résultat.

Merci
Cldt
Christian
0
rch05 Messages postés 32 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 5 mars 2015
22 sept. 2010 à 15:26
Re jack,

Tu es trop fort.
Effectivement .AutoFormat annule .NumberFormat .

Bravo et merci de tes précieux conseils.

A la prochaine fois

Cldt
Christian
0
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
22 sept. 2010 à 16:40
lol, merci
0
Rejoignez-nous