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 :

extraction Access vers Excel


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 77
    Par défaut extraction Access vers Excel
    Bonjour,

    J'ai des résultats de recherche dans 4 zones de listes différentes (avec des requetes SELECT dans la propriété Contenu).

    je voudrais extraire ces résultats dans un même fichier excel mais dans 4 onglets différents.

    Comment faire ?

    merci

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Je te suggère la lecture du tutoriel de Cafeine sur l'export vers Excel. Notamment le point 4.


  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 77
    Par défaut
    La fonction TransferSpreadsheet sert à exporter des tables entières. moi les résultats dans mes zones de texte sont des requêtes du type SELECT champs FROM table WHERE condition ORDER BY nom.
    est-ce que c'est possible d'extraire directement les résultats de cette requête (qui n'a pas de nom mais est défini dans le contenu de la zone de liste) avec transferspreadsheet ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    oui, en passant par une table temporaire remplie avec la requete select par exemple
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Par défaut
    Ou par un recordset basé sur ta requete.

    Voici un exemple:

    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
     
     
        Set Appexcel = CreateObject("Excel.Application")
        Appexcel.Visible = True
        Set Wbexcel = Appexcel.Workbooks.Open("C:\Detailled Report.xls")
        Appexcel.Sheets("Global").Select
     
    'creation du recordset à partir de la requete
        Dim rsReport As DAO.Recordset
        Set rsReport = CurrentDb.OpenRecordset("nomrequete")
        boucleReport = 1
     
    'parcourt le recordset puis afficher les données du recordset dans les cellules du fichier excel
        While Not rsReport.EOF
            Appexcel.Cells(boucleReport + 7, 1) = rsReport(0)
            Appexcel.Cells(boucleReport + 7, 2) = rsReport(1)
            Appexcel.Cells(boucleReport + 7, 3) = rsReport(2)
            Appexcel.Cells(boucleReport + 7, 4) = rsReport(3)
            Appexcel.Cells(boucleReport + 7, 5) = rsReport(4)
            Appexcel.Cells(boucleReport + 7, 6) = rsReport(5)
            boucleReport = boucleReport + 1
        rsReport.MoveNext
        Wend
     
    Set rsReport = Nothing

  6. #6
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Je me suis trompé.. c'est pas le point 4 mais le 5.
    Il te permettra de mettre en form ton fichier Excel.

    oui, en passant par une table temporaire remplie avec la requete select par exemple
    Je suis à moitié d'accord.
    Ceci fonctionne très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Me.MaZoneDeListe.RowSource, "MonfichierExcel.xls"
    En plus,
    Si tu ajoutes à la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Me.MaZOneDeListe2.RowSource, "MonfichierExcel.xls"
    L'exportation se fait dans le même fichier mais dans une feuille différente.


  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 77
    Par défaut
    jpcheck :
    par exemple avec une requête Création de table ? CREATE TEMPORARY TABLE table (champ1,champ2)

    Lou Pitchoun :
    J'ai fait comme tu as dit mais j'ai un message d'erreur :
    le nom de table n'est pas conforme au regle d'appelation d'objet quand j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, Me.ExpedMarchandise.RowSource, "MonfichierExcel.xls"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction de donnée par ADO ACCESS vers Excel
    Par roidurif dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2009, 18h29
  2. [AC-2000] Extraction hebdomadaire d'Access vers Excel..
    Par amne26 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/05/2009, 11h56
  3. Liaison Office Access vers Excel
    Par PDR dans le forum Access
    Réponses: 4
    Dernier message: 04/10/2005, 10h20
  4. Extraction base vers excel
    Par georgeabitbol dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/07/2004, 09h40
  5. Access vers excel
    Par tiopan dans le forum Access
    Réponses: 6
    Dernier message: 05/12/2003, 08h43

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