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 :

Quelle exportation vers excel


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 28
    Points
    28
    Par défaut Quelle exportation vers excel
    Bonjour,

    Tout d'abord, je vous remercie pour tous les tuto, exemples et cours présent sur le forum.


    J'aimerais exporter des données vers un tableau excel, celui-ci à une mise en page assez complexe.

    Ma question est la suivante: quel méthode utiliser pour exporter mes données sachant que j'aimerais utiliser une méthode assez simple?
    Quel méthode se rapprocherais le plus d'une fusion Word? Automation, ADO xRETRIEVE?

    Merci d'avance.

    Ps: je suis relativement débutant sur Access
    Version Access 97

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    Vu que tu débutes dans Access, je dois te prévenir qu'ADO et l'Automation sont des méthodes plutôt destinées aux utilisateurs moyens et confirmés.
    Cependant, je te propose de tester l'automation où tu peux atteindre des cellules par leur nom (préalablement défini par tes soins) à l'image des signets word.

    Bonne continuation
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Bonjour !

    J'aimerais exporter des données vers un tableau excel, celui-ci à une mise en page assez complexe.
    J'ai une petite question :
    qu'est ce que tu exportes comme données ?La mise en page est strictement la meme à chaque fois que tu exportes ? (c'est à dire meme nombre de lignes, de cellules...).

    Si c'est le cas, tu pourrais créer un modèle de documents excel (avec extension .xlt) avec la mise en page.

    Ensuite par automation tu ouvres ce documents et tu le remplie avec les données exportées.

    Qu'en penses tu ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Celia1303
    Bonjour !



    J'ai une petite question :
    qu'est ce que tu exportes comme données ?La mise en page est strictement la meme à chaque fois que tu exportes ? (c'est à dire meme nombre de lignes, de cellules...).

    Si c'est le cas, tu pourrais créer un modèle de documents excel (avec extension .xlt) avec la mise en page.

    Ensuite par automation tu ouvres ce documents et tu le remplie avec les données exportées.

    Qu'en penses tu ?
    La mise en page est strictement la même, si le champ est non renseigné, la cellule reste vide (le document excel est déjà existant, je vais m'en servir probablement comme model) j'exporte essentiellement des noms, adresses, dates...

    Je vais essayer de me pencher sur ta méthode.

    Je vous remercie pour vos réponses claires et rapides.

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    N'hésite pas à me contacter si tu as des soucis !

    Bon courage !

  6. #6
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 222
    Points : 125
    Points
    125
    Par défaut
    Bonjour, moi je génère des rapports ou j'exporte des données servant à construire des graphiques dans Excel. Voici comment je procède :

    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
     
    Private Sub ExporteDansRapportParDate(ByVal rst As Recordset, ByVal dd As String)
    On Error GoTo Err_ExporteDansRapportParDate
     
    Dim appExcel As New Excel.Application  'Application Excel
    Dim appExcelFeuille As Excel.Worksheet 'feuille de travail Excel
     
    Set appExcel = Nothing
    Set appExcelFeuille = Nothing
     
    Dim X As Integer
     
    'Ouverture du fichier Excel
    appExcel.Visible = False
    appExcel.Workbooks.Open "G:\CONTACT SECURITE\Rapports\RapportCS.xls", 3, False
    'Sélection de la feuille de travail.
    Set appExcelFeuille = appExcel.Workbooks(1).Worksheets(1)
    'Inscription du titre
    appExcelFeuille.Range("B" & 1) = "Rapport des Contacts"
    appExcelFeuille.Range("B" & 2) = "À partir du " & dd
    X = 5 'Point de départ
    'Effacer le contenu existant.
    While appExcelFeuille.Cells(X, 1) <> "" 'Tant qu'on arrivera pas a une ligne vide.
        appExcelFeuille.Cells(X, 1) = ""
        appExcelFeuille.Cells(X, 2) = ""
        appExcelFeuille.Cells(X, 3) = ""
        appExcelFeuille.Cells(X, 4) = ""
        appExcelFeuille.Cells(X, 5) = ""
        appExcelFeuille.Cells(X, 6) = ""
        appExcelFeuille.Cells(X, 7) = ""
        appExcelFeuille.Cells(X, 8) = ""
        appExcelFeuille.Cells(X, 9) = ""
        appExcelFeuille.Cells(X, 10) = ""
        X = X + 1
    Wend
    X = 5 'Remettre le point de départ.
    'Insertions des données dans la feulle de travail.
    While Not rst.EOF
        appExcelFeuille.Cells(X, 1) = rst.Fields("NumContact")
        appExcelFeuille.Cells(X, 2) = rst.Fields("NumAssocie")
        appExcelFeuille.Cells(X, 3) = rst.Fields("NomPrenomAssocie")
        appExcelFeuille.Cells(X, 4) = rst.Fields("Departement")
        appExcelFeuille.Cells(X, 5) = rst.Fields("Equipe")
        appExcelFeuille.Cells(X, 6) = CStr(rst.Fields("Date"))
        appExcelFeuille.Cells(X, 7) = rst.Fields("Categorie")
        appExcelFeuille.Cells(X, 8) = rst.Fields("Type")
        appExcelFeuille.Cells(X, 9) = rst.Fields("Description")
        appExcelFeuille.Cells(X, 10) = rst.Fields("Commentaire")
        rst.MoveNext
        X = X + 1
    Wend
    appExcelFeuille.Range("B" & 3) = "Nbr. de contact : " & (X - 5)
    'Affichage du rapport.
    appExcel.Visible = True
    appExcelFeuille.Activate
    Exit_ExporteDansRapportParDate:
    Exit Sub
    Err_ExporteDansRapportParDate:
    MsgBox Err.Description
    Resume Exit_ExporteDansRapportParDate
    End Sub
    En espérant que cela t'éclaires un peu plus...
    Charles Bergeron - Webmaster/Infographe/Photographe

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 28
    Points
    28
    Par défaut test
    A partir de cette FAQ ,http://access.developpez.com/faq/?pa...ataAccessExcel

    J'ai essayer de creer un petit module VBA pour exporter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
    Set appexcel = CreateObject("Excel.Application")
    appexcel.Visible = True
    Set wbexcel = appexcel.Workbooks.Open("### légionelles\Pierre\Devis PMCA\DEVIS PMCA annexes")
    appexcel.Sheets("FICHE de MESURE légio NFT").Select
    appexcel.cells(4, 4) = rst![Société intervention]
    End Sub
    Etant donné que je suis vraiment débutant sur VBA, pouvez vous me dire ce qui cloche?
    apparement, mes variables ne sont pas déclarées

    Merci d'avance.

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    As tu coché les références Microsoft Excel ... Object Library ?

    (quand tu es sous vba, dans l'onglet Outils puis références)

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Celia1303
    As tu coché les références Microsoft Excel ... Object Library ?

    (quand tu es sous vba, dans l'onglet Outils puis références)

    Oui je l'ai fait

  10. #10
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Set wbexcel = appexcel.Workbooks.Open("F:\User\AGENCE CENTRE EST\ANNEE 2006\Groupe eau potable - légionelles\Pierre\Devis PMCA\DEVIS PMCA annexes")
    Ou alors c'est peut etre aussi parce que tu n'a pas précisé l'extension du fichier :

    Set wbexcel = appexcel.Workbooks.Open("F:\User\AGENCE CENTRE EST\ANNEE 2006\Groupe eau potable - légionelles\Pierre\Devis PMCA\DEVIS PMCA annexes.xlt")pour un modele de document

    ou
    Set wbexcel = appexcel.Workbooks.Open("F:\User\AGENCE CENTRE EST\ANNEE 2006\Groupe eau potable - légionelles\Pierre\Devis PMCA\DEVIS PMCA annexes.xls")

  11. #11
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut
    Juste une petite astuce

    au lieu de trainer appexcel; ce serait plus interessant et plus propre de définir un objet worksheet:


  12. #12
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut
    Désolé pour le message précédent: Fausse manip de ma part

    je suggerais qu'au lieu de se trainer le appexcel, il serait plus interessant et plus propre de déclarer un objet worksheet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Dim wsexcel   as  excel.worksheet
     
     set wsexcel=wbsxcel.worksheets

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 28
    Points
    28
    Par défaut test d'un code
    En cherchant un peu, j'ai reussi à trouvé ce code sur le net.
    mais malheureusement, j'ai des problème avec. Je l'ai à peu près compris mais la déclaration des variables semble erroné. (Dim db As Database jusqu'a Dim Temp As Variant)

    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
    Public Function insert_excel()
     
     
    Dim rst As Recordset
    Dim compteEnr As Long, chMsg As String
    Dim varRetournée As Variant, lngX As Long
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
    Dim temp As Variant
     
    Set db = CurrentDb()
    Set appexcel = CreateObject("Excel.Application")
     
    '-> Si true excel s'affiche à l'écran
    'appexcel.Visible = True
     
    '->ouverture du fichier excel, dans notre cas fichier test.xls
    Set wbexcel = appexcel.Workbooks.Open("F:\User\AGENCE CENTRE EST\ANNEE 2006\Groupe eau potable - légionelles\Pierre\DEVIS PMCA.xls")
     
    '->selection de la feuille, dans notre cas feuille test
    appexcel.Sheets("FICHE de MESURE Légio NFT").Select
     
    '-> ouverture de la table
    Set rst = db.OpenRecordset("requete fiche prelevement")
        With rst
        ' -> On quitte si la table T_travail est vide
        If rst.RecordCount = 0 Then
             Beep
             MsgBox "Données incompléte pour mise à jour des données !", vbExclamation, "Alerte utlisateur"
             rst.Close
             db.Close
             Exit Function
           Else
             .MoveLast
             .MoveFirst
             compteEnr = .RecordCount
             chMsg = "Mise à jour des données sources" & Date
             varRetournée = SysCmd(acSysCmdInitMeter, chMsg, compteEnr)
             ligne = 1
             Do Until rst.EOF
                For lngX = 1 To compteEnr
                varRetournée = SysCmd(acSysCmdUpdateMeter, lngX)
     
                '-> modification des données dans excel
                appexcel.Cells(4, 4) = rst![Société  intervention]
                appexcel.Cells(5, 4) = rst![Adresse intervention]
     
     
     
     
     
     
     
    End Function
    [EDIT] Problème reglé Merci

  14. #14
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Merci de nous dire sur quelle ligne est le bug ...

    sinon cette portion me paraît étrange
    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
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Do Until rst.EOF
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;For lngX = 1 To compteEnr
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;varRetournée = SysCmd(acSysCmdUpdateMeter, lngX)
     
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;'-> modification des données dans excel
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;appexcel.Cells(4, 4) = rst![Société&#160;&#160;intervention]
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;appexcel.Cells(5, 4) = rst![Adresse intervention]
     
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;'-> on passe à l'enregistrement suivant
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;rst.MoveNext
     
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;'-> on precise de passer à la ligne siuvante dans excel
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ligne = ligne + 1
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Next lngX
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Loop
    puisque tu incrémentes Ligne et lngX sans l'utiliser ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  15. #15
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 28
    Points
    28
    Par défaut
    Ayant continué a developper mon application et ayant progressé sur access, je me suis rendu compte que les données à exporter ne viennent pas d'une table mais d'une requete de selection. (on exporte les données pour un Devis)

    Quelqu'un pourrait-il m'aider à modifier mon code pour pouvoir exporter de ma requete R_Devis plutot que des tables?

    Merci d'avance

    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
    Dim rst As DAO.Recordset
    Dim compteEnr As Long, chMsg As String
    Dim varRetournée As Variant, lngX As Long
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
    Dim temp As Variant
    Set db = CurrentDb()
    Set appexcel = CreateObject("Excel.Application")
     
    '-> Si true excel s'affiche à l'écran
    appexcel.Visible = True
     
    '->ouverture du fichier excel,
    Set wbexcel = appexcel.Workbooks.Open("###légionelles\Pierre\DEVIS PMCA.xls")
     
    '->selection de la feuille,
    appexcel.Sheets("FICHE de MESURE Légio NFT ").Select
     
    '-> ouverture de la table
    Set rst = db.OpenRecordset("Site intervention")
     
    '-> modification des données dans excel
     
                appexcel.Cells(4, 4) = rst![Société  intervention]
                appexcel.Cells(5, 5) = rst![ville intervention]
                appexcel.Cells(5, 4) = rst![Adresse intervention]
     
    Set rst = db.OpenRecordset("Employé")
                appexcel.Cells(3, 4) = rst![Nom]
                appexcel.Cells(3, 5) = rst![Prenom]
     
    Set rst = db.OpenRecordset("Contact intervention")
                appexcel.Cells(9, 5) = rst![nom contact  intervention]
                appexcel.Cells(9, 4) = rst![prenom contact  intervention]
     
    Set rst = db.OpenRecordset("Devis")
                appexcel.Cells(5, 38) = rst![Ref Devis]
     
    Set rst = db.OpenRecordset("Pts de prelevement")
    intLigne = 15
     
                While Not rst.EOF
                appexcel.Cells(intLigne, 4) = rst![Désignation de l'equipement]
                rst.MoveNext
                intLigne = intLigne + 1
                Wend
     
    rst.Close
    db.Close
     
     
    Set appexcel = Nothing
    End Function
    Ps: merci beaucoup pour ce que vous avez déjà fait.

    J'aimerais également avoir la possibilité de generer le devis une fois que j'ai rempli ma requete de selection. (je ne sais absolument pas comment lier le code à ma requete.)

Discussions similaires

  1. [crystal report] export vers excel 2000 data only
    Par bobwilson dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/02/2005, 18h30
  2. Exporter vers Excel, et créer automatiquement un graphe
    Par NiKKiLLeR dans le forum Windows
    Réponses: 2
    Dernier message: 10/02/2005, 19h02
  3. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53
  4. [CR] Exportation vers Excel
    Par djamel64 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 01/12/2003, 14h52
  5. exportation vers excel
    Par Pm dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/01/2003, 14h48

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