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 :

[Automation][00]plusieurs exports dans un seul fichier excel


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 46
    Points
    46
    Par défaut [Automation][00]plusieurs exports dans un seul fichier excel
    Bonjour (ou Bonsoir) à tous,

    Je vous expose mon problème, J'ai besoin d'exporter le resultat de plusieurs requêtes vers excel. Mais ce dont j'ai encore plus besoin c'est que ces resultat soit dans des feuilles differente d'un meme classeur excel.

    Donc aujourd'hui par les macro j'arrive tres facilement a exporter les resultats dans plusieurs fichiers excel mais pas dans un seul.

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Bienvenu sur le forum, tu as a ta disposition une FAQ, des Sources, et des tutoriaux, dont celui-là, qui te permettra je pense résoudra tes problèmes.

    Starec

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta reponse, mais ce ne fonctionne pas totalement. Pourtant je sens bien que je ne suis pas loin.
    J'utilise le code trouver dans le tuto que tu m'as fournis
    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    Function TransfertExcelAutomation()
     
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
        Dim I As Long, J As Long
        Dim t0 As Long, t1 As Long
     
        t0 = Timer
        Dim rec As Recordset
     
        Set rec = CurrentDb.OpenRecordset("TelFauxIDF", dbOpenSnapshot)
     
        'Initialisations
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
     
        'Ajouter une feuille de calcul
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Name = "TelFauxIDF"
     
        ' le titre
        '  écriture dans la cellule de ligne 1 et de colonne 1
        'xlSheet.Cells(1, 1) = "Export d'une table Access"
     
     
        ' les entetes
        '  .Fields(Index).Name renvoie le nom du champ
        For J = 0 To rec.Fields.Count - 1
            xlSheet.Cells(1, J + 1) = rec.Fields(J).Name
            ' Nous appliquons des enrichissements de format aux cellules
            With xlSheet.Cells(1, J + 1)
                .Interior.ColorIndex = 15
                .Interior.Pattern = xlSolid
                .Borders(xlEdgeBottom).LineStyle = xlContinuous
                .Borders(xlEdgeBottom).Weight = xlThin
                .Borders(xlEdgeBottom).ColorIndex = xlAutomatic
                .HorizontalAlignment = xlCenter
            End With
        Next J
     
        ' recopie des données à partir de la ligne 3
        I = 2
        Do While Not rec.EOF
            For J = 0 To rec.Fields.Count - 1
                ' .Fields(Index).Type renvoie le type du champ
                '   si c'est un Texte (dbText) nous insérons "'" pour
                '   qu'il soit reconnu par Excel comme du Texte
                If rec.Fields(J).Type = dbText Then
                    xlSheet.Cells(I, J + 1) = "'" & rec.Fields(J)
                Else
                    xlSheet.Cells(I, J + 1) = rec.Fields(J)
                End If
            Next J
            I = I + 1
            rec.MoveNext
        Loop
     
        ' code de fermeture et libération des objets
        xlBook.SaveAs "C:\Temp\Resultat.xls"
        xlApp.Quit
        rec.Close
        Set rec = Nothing
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
     
        t1 = Timer
        Debug.Print I & " enregistrements", Format(t1 - t0, "0") & " secondes"
     
    End Function

    Voila ce que je fais j'ai créer une methode pour chaque requete, donc onglet que j'ai besoin de créer dans le fichier excel
    Je pense que mon probleme viens de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlBook.SaveAs "C:\Temp\Feuille.xls"
    Comme j'ai plusieurs requetes à extraire, à chaque fois le fichier Resultat est remplacer par le nouveau puisque le code est SaveAs.

    Merci de nouveau pour vos reponses

  4. #4
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Pourquoi extrait tu pas tes autres requetes a la suite de se code
    ou alors si tu veux ajouter d'autre requete a la suite il faut juste que tu ouvre la feuille existante mais pas la recreer.

  5. #5
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Ceci qui est plus simple crée 2 onglets (Une et Deux) dans le même fichier XLS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub ExportExcel()
     DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "reqUne", "E:\ExportExcel.xls", True, "Une"
     DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "reqDeux", "E:\ExportExcel.xls", True, "Deux"
    End Sub

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Merci helas

    C'etait si simple comme ca.

    Par contre Renardo je ne perd pas de vue ta solution et pour ma culture personnel je vais essayer car elle me parait pas mal du tout

    A bientot tous le monde

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

Discussions similaires

  1. [AC-2007] Export de plusieurs tables dans un seul fichier Texte
    Par dimitrak dans le forum VBA Access
    Réponses: 8
    Dernier message: 16/10/2013, 07h41
  2. Réponses: 4
    Dernier message: 26/11/2009, 12h00
  3. Sauvegarder plusieurs images dans un seul fichier
    Par thetom dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 17/08/2009, 12h35
  4. Réponses: 12
    Dernier message: 03/06/2008, 17h54
  5. Réponses: 2
    Dernier message: 22/09/2007, 15h37

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