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 :

Exporter des requetes Access dans plusieurs onglets Excel existants


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Exporter des requetes Access dans plusieurs onglets Excel existants
    Bonjour,

    J'ai 3 requêtes (R1, R2 et R3). Je voudrais exporter R1 et R2 dans l'onglet nommé Synthèse. Respectivement avec un démarrage d'écriture de R1 en cellule B3 et un démarrage d'écriture de R2 en cellule A40.
    Puis je voudrais exporter R3 sur l'onglet nommé "Suivi" avec une démarrage d'écriture en B2. Le classeur excel se nommant "Bilan.xlsx

    Et tout ceci dans un macro acces a priori en vba.

    Ayuda please

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Tu peux utiliser la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "NomDeTaRequete", "Chemin complet et nom du fichier Excel", True
    Malheureusement, tu ne peux pas cibler la plage de réception.
    Par contre, lors de la première exportation, Excel crée des onglets en fonction des noms de tes requêtes.
    Une fois la première exportation exécutée, tu peux déplacer tes données exportées sur la page en fonction de tes besoins.
    Les prochaines exportations garderont l'emplacement que tu aura choisi.
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 99
    Points
    99
    Par défaut
    Bonjour

    Une petite fonction que j'utilise



    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
     
     
    Function ExportReqVersExel(ByVal strSQL As String, ByVal FichierExcel As String, ByVal NomFeuil As String, ByVal CelulleCible As String) As Boolean
     
     
        Dim xlApp As Excel.Application
        Dim xlWkb As Excel.Workbook
        Dim xlSheet As Excel.Worksheet
        Dim rst As DAO.Recordset
        Dim RetVal As Boolean
     
        On Error GoTo Gest_Err
     
        'Ouverture de la requête
        Set rst = CurrentDb.OpenRecordset(strSQL)
        If rst.EOF Then GoTo Sortie
     
        'Ouverture du classeur (en mode invisible)
        Set xlApp = CreateObject("Excel.application")
        Set xlWkb = xlApp.Workbooks.Open(FichierExcel)
        Set xlSheet = xlWkb.Sheets(NomFeuil)
     
        '    'Recopie les entetes le cas écheant
        '    xlSheet.Range(CelulleCible).select
        '    For i = 0 To rst.Fields.Count - 1
        '        xlApp.ActiveCell.Value = rst(i).Name
        '        xlApp.ActiveCell.Offset(0, 1).select
        '    Next
     
        'Transfert & mise en forme des données
        xlSheet.Range(CelulleCible).CopyFromRecordset rst
     
        'Si je souhaite adapter la largeur des colonne aux données fraichement copiées
        'xlApp.Cells.EntireColumn.AutoFit
     
     
        'sauvegarde la modification
        xlWkb.Save
     
        'Rend le classeur visible
        xlApp.visible = True
     
        RetVal = True
     
     
    Sortie:
        ExportReqVersExel = RetVal
     
        On Error Resume Next
        rst.Close: Set rst = Nothing
        Set xlWkb = Nothing
        Set xlApp = Nothing
        Exit Function
     
    Gest_Err:
        RetVal = False
        MsgBox ERR.Number & " - " & ERR.description, vbCritical, "Erreur export"
        Resume Sortie
     
     
    End Function

    Voici comment l'appeler


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Sub test_ExportReqVersExel()
        Call ExportReqVersExel("req_distinct", "C:\Users\samloba\Desktop\bilan.xls", "Synthèse", "B3")
    End Sub
    J'espère que ça va t'aider. Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/08/2015, 10h46
  2. [AC-2010] Transfert de recordset Access dans plusieurs onglets Excel
    Par kesamba dans le forum IHM
    Réponses: 2
    Dernier message: 13/06/2014, 16h46
  3. Réponses: 1
    Dernier message: 28/12/2013, 10h31
  4. [ODS] Exporter proc freq dans plusieurs onglets excel
    Par the_special_one dans le forum ODS et reporting
    Réponses: 3
    Dernier message: 15/03/2012, 16h28
  5. Systématiser l'export de données SAS dans plusieurs onglets XLS
    Par dakine dans le forum ODS et reporting
    Réponses: 4
    Dernier message: 18/02/2011, 15h47

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