IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Export requête (dates et heures) vers Excel


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Export requête (dates et heures) vers Excel
    Bonjour,

    Je souhaite exporter une requête vers excel.
    Cela fonctionne pour les dates au format Date, abrégé ("jj/mm/aaaa"), ainsi que pour les chaines de caractère et les nombres.

    Dans mes tables, j'ai également des dates qui sont au format Date, général ("jj/mm/aaaa hh:mm:ss"), ainsi que des heures au format Heure, abrégé ("hh:mm").

    Après avoir exporté ma requête, j'ouvre le fichier Excel et j'ai 2 problèmes:
    - les Date, général n'apparaissent que en "jj/mm/aaaa" (pourtant quand je clique sur la cellule, je vois l'heure)
    - les Heure, abrégé apparaissent : 00.01.1900 (quand on clique sur la cellule : 00.01.1900 00:30:00)

    Savez vous comment faire pour qu'Excel affiche les bons formats de date/heure?


    je précise que mes requetes sont écrites en SQL et je les exécute avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set qd = CurrentDb.CreateQueryDef("req_selection", sql) 'sql est une chaine de caratère valant "select ... from ..."
    DoCmd.TransferSpreadsheet acExport, 8, "req_selection", RepertoireStockage & "export_2.xls"
    Merci d'avance !

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    J'ai réussi à afficher correctement les dates et heures et procédent par concaténation et extraction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT hour(duree_realisation) &  ':' & minute(duree_realisation) as [Durée]
    FROM info_realisation
    ou encore grâce à la fonction format :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Format(duree_realisation,'hh:mm:ss') as [Durée]
    FROM info_realisation

    Cependant Excel transforme alors les champs en chaînes de caractère, je ne trouve pas cela très propre...
    Je suis preneuse d'une autre solution !

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Personne n'a d'idée?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 122
    Points : 172
    Points
    172
    Par défaut
    Salutations,

    As-tu essayé, après ton export d'exécuter un code qui ouvrirait le fichier excel en question et modifierait le format des colonnes concernées ?

    Voici un code te permettant de le faire via une boite de dialogue open :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    sub changerformat()
     
    '*selection du fichier source via boite de dialogue**
     
    Dim fichier As String
    Dim dlgOpen As Object
     
    Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
     
    With dlgOpen
        .AllowMultiSelect = True
        If .Show = 0 Then
            Exit Sub
        End If
        fichier = .SelectedItems(1)
    End With
     
    '*********** Ouverture du fichier excel source *****************
     
    Dim xlApp As Object
    Dim xlBook As Object
     
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open(fichier)
     
    'Modification du format pour tes dates général (exemple avec colone A)
    xlApp.Columns("A:A").Select
    xlApp.Selection.NumberFormat = "d/m/yy h:mm;@"
    'Modification du format pour tes heures abrégées (exemple avec colone B)
    xlApp.Columns("B:B").Select
    Selection.NumberFormat = "h:mm;@"
     
    xlBook.Save 'Enregistrement fichier
    xlBook.Close 'Fermeture classeur
    xlApp.Quit 'Fermeture excel
     
    Set source = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
     
    End Sub
    Voilà, en espérant que celà t'aidera.

    Cordialement,

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Merci pour ta réponse ! Malheuresement j'ai l'impression que ça ne change rien ! Bizarre ...

Discussions similaires

  1. Export de date de SQL vers Excel - 2 jours de différence (?)
    Par billbaroud13 dans le forum Développement
    Réponses: 4
    Dernier message: 19/11/2012, 17h03
  2. exportation et importation de données vers excel
    Par Skizo dans le forum Access
    Réponses: 3
    Dernier message: 20/05/2006, 09h50
  3. Réponses: 7
    Dernier message: 22/12/2005, 09h56
  4. Export de données d'Access vers Excel
    Par ROPERS dans le forum Access
    Réponses: 4
    Dernier message: 11/10/2005, 17h44
  5. exporter données (requete ou DBGrid) vers Excel
    Par marie253 dans le forum Bases de données
    Réponses: 4
    Dernier message: 14/09/2004, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo