Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exporter données Access vers fichier Excel VBA

    17 juin 2021 à 9:37:25

    Bonjour,

    J'ai monté une macro VBA (sous excel) qui me permet de créer des requetes Access afin de traiter des fichier dont j'ai besoin. Là, au moment de crier victoire, je m'aperçois qu'il me manque une étape décisive : exporter les données générées par mes requêtes vers un fichier Excel.

    J'ai donc tenté avec le code ci-après mais il ne fonctionne pas, j'ai le message d'erreur : Propriété non trouvé

    Sub export_spreadsheets()
    
    If Mois_req = "" Then
    
        Mois_req = InputBox("Entrer la date fin de mois à utiliser au format [MM/AAAA]")
    
        Mois_req = Replace(Mois_req, "/", "-")
        
    End If
    
    Dim objACCESS As Object 'Mon Objet ACCESS
    Set objACCESS = CreateObject("Access.Application")
    
    objACCESS.OpencurrentDatabase ("D:\Tests\TEST.accdb")
    objACCESS.Application.Visible = True
    
    'Ouvre la requête avant de l'exporter
    objACCESS.DoCmd.OpenQuery "Requete_em3", acViewNormal, acEdit
    objACCESS.DoCmd.OutputTo acOutputQuery, "Requete_em3", "ExcelWorkbook(*.xlsx)", ThisWorkbook.Path & "\Requete_em3_" & Mois_req & ".xlsx", False
    
    objACCESS.DoCmd.OpenQuery "Requete_in_em3", acViewNormal, acEdit
    objACCESS.DoCmd.OutputTo acOutputQuery, "Requete_in_em3", "ExcelWorkbook(*.xlsx)", ThisWorkbook.Path & "\Requete_in_em3_" & Mois_req & ".xlsx", False
    
    objACCESS.Quit
    Set objACCESS = Nothing
    
    End Sub

    Je pensais au départ que c'est parce qu'il ne reconnaissait pas le nom de mes requêtes mais cela me semble bizarre dans la mesure où il arrive à les ouvrir (avec le DoCmd.OpenQuery). J'ai aussi tenté de ne pas remplir le chemin réseau afin que Access me propose de le définir manuellement mais cela donne le même résultat.

    Quelqu'un saurait il m'éclairer svp? :lol:

    -
    Edité par Coding Sunset 17 juin 2021 à 9:39:54

    • Partager sur Facebook
    • Partager sur Twitter

    Going Further. Code in Progress..

      17 juin 2021 à 19:36:14

      A quel endroit il t'indique "propriété non trouvée"? 

      a priori ça doit être pour l'argument n°3 Outputformat qui est de type AcFormat:

      remplace le "ExcelWorkbook(*.xlsx)" par acFormatXLS ( https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa220433(v=office.11) )

      • Partager sur Facebook
      • Partager sur Twitter
        24 juin 2021 à 9:49:07

        umfred a écrit:

        A quel endroit il t'indique "propriété non trouvée"? 

        a priori ça doit être pour l'argument n°3 Outputformat qui est de type AcFormat:

        remplace le "ExcelWorkbook(*.xlsx)" par acFormatXLS ( https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa220433(v=office.11) )


        Hello, j'ai oublié de préciser, "Propirété non trouvée" apparait pour les lignes 19 et 22 du code

        En essayant de remplacer le "ExcelWorkbook(*.xlsx)" par acFormatXLS ça ne change rien, j'ai d'abord cette fenêtre qui s'affiche :

        Puis quand je sélectionne "Classeur Excel (*xlsx)" , j'ai le message "Propriété non trouvée".:(

        • Partager sur Facebook
        • Partager sur Twitter

        Going Further. Code in Progress..

          24 juin 2021 à 14:30:19

          si tu choisis le classeur excel 97-2003 (*.xls), est-ce que ça fonctionne ?
          • Partager sur Facebook
          • Partager sur Twitter
            24 juin 2021 à 14:38:16

            Non plus, malheureusement

            Le plus étrange, c'est que quand j'exécute la ligne de code suivante (ligne 22) dans Access directement : 

            DoCmd.OutputTo acOutputQuery, "Requete_in_em3", "ExcelWorkbook(*.xlsx)", Repertoire & "\Requete_in_em3_" & Mois_req & ".xlsx", False
             ' "Thisworkbook.path" remplacé par la variable "Repertoire" afin d'exécuter correctement le code dans Access
            

            J'obtiens bien le résultat escompté. Access comprend bien qu'il faut qu'il me fasse l'extraction dans le répertoire spécifié mais impossible en passant par VB Excel. 

            -
            Edité par Coding Sunset 24 juin 2021 à 16:55:19

            • Partager sur Facebook
            • Partager sur Twitter

            Going Further. Code in Progress..

              24 juin 2021 à 17:29:02

              peut-être en fait, qu'Excel ne connaisse pas le symbole acOutputQuery en fait; essaie de le remplacer par la valeur 1

              (si tu tapes dans la fenêtre Exécution de VBA ? acOutputquery est-ce que ça te renvoie une valeur ou la même erreur ?)

              • Partager sur Facebook
              • Partager sur Twitter

              Exporter données Access vers fichier Excel VBA

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown