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

Access Discussion :

Transfert de données depuis ACCESS vers un classeur EXCEL [AC-2019]


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    retraité de l'informatique de gestion
    Inscrit en
    Mars 2018
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité de l'informatique de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 215
    Points : 78
    Points
    78
    Par défaut Transfert de données depuis ACCESS vers un classeur EXCEL
    Bonjour,

    Dans ACCESS je dispose d'une table dont je veux exporter les données dans un classeur EXCEL comprenant une feuille "Données" et une feuille "Graphique". Mais il faudrait que le transfert des données n'efface pas la feuille "Graphique" à chaque fois que je mets à jour la feuille données par un transfert depuis ACCESS

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonjour,
    et quel est le code utilisé pour faire cela ? sachant que le paramètre Range de la commande Docmd.TransferSpreadSheet permet de spécifier le nom de la feuille ou la plage de cellules à alimenter

  3. #3
    Membre régulier
    Homme Profil pro
    retraité de l'informatique de gestion
    Inscrit en
    Mars 2018
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité de l'informatique de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 215
    Points : 78
    Points
    78
    Par défaut
    à partir d'un formulaire j'ai crée un bouton avec sur l'evenement "sur_click"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Simulation_Excel_Click()
     
    DoCmd.OutputTo acOutputQuery, "R_Simulation", "Excel97-Excel2003Workbook(*.xls)", "Simulations.xls", True, "", 0
     
    End Sub
    je transfert les données de la requete "R_simulation" dans un classeur excel "Simulation.xls. Mais lors du prochain "click" cela va effacer la feuille "graphique" de mon classeur

  4. #4
    Membre régulier
    Homme Profil pro
    retraité de l'informatique de gestion
    Inscrit en
    Mars 2018
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité de l'informatique de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 215
    Points : 78
    Points
    78
    Par défaut
    J'ai modiifé le code avec la commande proposée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, 9, "R_Simulation", "Simulation.xls", True, "Data"
    Cela fonctionne mais la feuille "Data" vient s'ajouter aux feuilles existantes et est nommée "Data1" et non pas remplacer la feuille existante.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    en effet, dans ce cas, il faudrait plutôt utiliser CopyfromRecordset dans une procédure VBA qui permet de préciser la feuille de destination mais cela implique de coder quelques dizaines de lignes:
    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
    44
    45
    46
    Sub ExportVersXls()
    ' pour éviter les problèmes de référence, en utilise le Late Binding (liaison tardive en français):
    Dim oApp As Object
    Dim oWbk As Object
    Dim oWSht As Object
     
    Dim oRst As Recordset
    Dim Qdf As DAO.QueryDef
    Dim oDb As Database
    Dim i As Long
     
    'Définition des applications excel et access
        Set oDb = CurrentDb()
        Set oApp = CreateObject("excel.application")
     
        oApp.Visible = True  ' pour contrôler le bon fonctionnement, on rend visible l'instance Excel,
                             ' l'instruction peut être enlevée après la phase de tests
        Set oWbk = oApp.Workbooks.Open("C:\Simulations.xls")   ' modifier le chemin du fichier si besoin
        Set oWSht = oWbk.Worksheets("Data") 
     
    ' définition du jeu de données avec une requête enregistrée
        Set Qdf = oDb.QueryDefs("R_Simulation")
        Set oRst = Qdf.OpenRecordset
     
    ' suppression des anciennes données de la feuille
        oWSht.Activate
        oWSht.Cells.select
        oApp.Selection.Delete
     
    ' entête de colonnes sur la 1ère ligne 
        For i = 0 To oRst.Fields.Count - 1
            oWSht.Range("A1").Offset(0, i) = oRst(i).Name
        Next i
    ' copie des données à partir de la 2ème ligne
        oWSht.Range("A2").CopyFromRecordset oRst
     
    ' fermeture des instances ouvertes
    oRst.Close
    oWbk.Close True    ' sauvegarde du classeur
    Set oRst = Nothing
    Set oDb = Nothing
    Set oWSht = Nothing
    Set oWbk = Nothing
    Set oApp = Nothing
     
    End Sub

  6. #6
    Membre régulier
    Homme Profil pro
    retraité de l'informatique de gestion
    Inscrit en
    Mars 2018
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité de l'informatique de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 215
    Points : 78
    Points
    78
    Par défaut
    OK j'essaie cela

  7. #7
    Membre régulier
    Homme Profil pro
    retraité de l'informatique de gestion
    Inscrit en
    Mars 2018
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : retraité de l'informatique de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2018
    Messages : 215
    Points : 78
    Points
    78
    Par défaut
    Cela fonctionne .

    Merci beaucoup

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

Discussions similaires

  1. [AC-2000] transfert de données d'Access vers application web
    Par emilier dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/05/2019, 12h58
  2. [PPT-2007] Transfert de donnée depuis ppt vers excel
    Par jaquo dans le forum Powerpoint
    Réponses: 0
    Dernier message: 03/08/2016, 09h02
  3. Insertion de données depuis Access vers Word
    Par Doken dans le forum VBA Word
    Réponses: 3
    Dernier message: 13/09/2013, 08h27
  4. Transfert de données de Access vers open ERP
    Par max16 dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 05/02/2013, 13h38
  5. transfert de données d'access vers excel
    Par courtial dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2006, 16h16

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