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 :

exporter une base de donnée dans excel


Sujet :

Access

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 8
    Points
    8
    Par défaut exporter une base de donnée dans excel
    Bonjour à tous!

    Pour la gestion d'un centre de loisirs, j'ai créé une base de donnée access dans laquelle figure toutes mes fiche d'inscription d'enfants. Je voudrais savoir si il est possible d'exporter des champs d'une requête dans excel? J'ai un model de fiche de présence ds excel et je sohaiterai pouvoir extraire ma base de données pour que le nom et le prénom des enfant s'y mette automatiquement, sachant que pour chaque enfant, le prénom est rempli sous le nom.
    Merci de votre aide
    Mél

  2. #2
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    ok, je sais comment exporté une requête dans excel. Mais mon problème est de faire apparaître les données extraites en ligne et non en colone. Pour me faire mieux comprendre voici un exemple:
    Dans ma base de données j'ai des listes d'enfants:
    PRENOM NOM
    Amélie TINTIN
    Anthony PINPIN
    ...

    Dans mon document excel qui est ma fiche de présence, je souhaiterai extraire ses données sous cette forme:

    Amélie
    TINTIN

    Anthony
    PINPIN

    ...

    Est-ce possible? Je souhaite garder ce document excel, car c'est un document dans lequel j'ai inséré des calculs, des macro...
    Merci de m'aider

    Mél

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    As-tu essayé via un état. Tu peux y définir de regroupements, par nom par exemple et ensuite les exporter en Excel.

    C'est moins esthétique, mais un peu plus facile.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Citation Envoyé par ptitange
    ok, je sais comment exporté une requête dans excel. Mais mon problème est de faire apparaître les données extraites en ligne et non en colone. Pour me faire mieux comprendre voici un exemple:
    Dans ma base de données j'ai des listes d'enfants:
    PRENOM NOM
    Amélie TINTIN
    Anthony PINPIN
    ...

    Dans mon document excel qui est ma fiche de présence, je souhaiterai extraire ses données sous cette forme:

    Amélie
    TINTIN

    Anthony
    PINPIN

    ...

    Est-ce possible? Je souhaite garder ce document excel, car c'est un document dans lequel j'ai inséré des calculs, des macro...
    Merci de m'aider

    Mél
    Si je comprends bien, vous voulez que le prénom et le nom apparaisse dans la même cellule ?
    C'est possible, mais pour cela il faut utiliser l'automation.
    Il y a des exemples (le tutoriel de Cafeine entre autre) sur le forum.
    Une recherche sur
    Automation
    sur le forum devrait vous aider.

  6. #6
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 219
    Points : 108
    Points
    108
    Par défaut
    Pourquoi ne pas les exporter normalement dans un fichier excel temporaire, et ensuite faire un copier/coller spécial "transposé" ?

    Enfin, a condition que tu ne doives pas le faire trop souvent, étant donné qu'il faut le faire manuellement.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    si ta table est pourvue d'un champ clef ou auto tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select item from
    (SELECT 
     auto, 
    nom as item
     from matable
    union
    select auto,
     prénom as item
     from matable);
    Elle est pas belle la vie ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Non Franc, je ne souhaite pas que prénom et nom soit dans la même célule, mais dans des célules les unes en dessous des autres.

    Je souhaiterai avoir plus d'info sur ton code,random.où dois-je le rentré?

    Merci pr votre aide

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Essaie avec un état. On peut les exporter dans le format que l'on souhaite.
    Je viens d'essaer et ça fonctionne.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Quand j'exporte mon état dans excel, il me met les donnée les unes à côtés des autres, pourtant mon état est bien avec le prénom sous le nom. Comment fais-tu??
    J'ai access et excel 2003

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pour le nom, j'ai un NomHeader et le prénom dans le détail.
    Tu les mets l'un sous l'autre et dans l'export Excel, les données sont dans des cellules différentes.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  12. #12
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    J'ai juste un problème si j'ai deux fois le même nom.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    heuuuu
    Désolé, je suis débutante et j'ai pas trop compris ton explication!

  14. #14
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    J'ai pas fait exprès.

    Tu choisis l'assistant état.
    Tu choisis ta table.
    Tu choisis le nom pour le regroupement.
    Tu passes en mode création.
    Tu enlèves tout ce qui est cosmétique (lignes, cadre, ...).
    Tu mets le nom au dessus du prénom.
    Tu visualise.
    Tu exporte.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  15. #15
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Mea culpa, il me mets de cellules vides devant les prénoms.

    Excuse moi
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  16. #16
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut
    Utilises l'export de données à partir d'un recordset.
    en gros, tu fais en deux phases :
    1/ Ouverture d'un recordset avec comme source de données le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT item FROM
         (SELECT auto, nom as item, 'NOM' FROM matable 
          UNION 
          SELECT auto, prénom as item, 'PRENOM' FROM matable
          ORDER BY 1, 3);
    Désolé random pour le pompage sauvage
    2/ Ensuite tu utilises la méthodes d'export des données d'un recordset dans Excel

    Et le tour est joué enfin en théorie

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    recordset?? C'est quoi? et comment je fais ça??
    Ah les débutant!!!
    Merci

  18. #18
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut
    Arg ça va être hard...

    En gros il s'agit d'un mode d'accès au données qui te permet de traiter les données ligne par ligne par l'intermédiaire du code.
    En ce qui nous concerne, tu n'auras qu'à utiliser des méthodes simples.

    Il faut que tu crée un module de code VBA puis que tu saisisses le code d etraitement des données (cf FAQ et Tutoriels sur ce site).

    Si tu me laisse 2' je t'envoie un code à mettre dans ton appli.

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    ok j'attend ton envoi!
    Merci pr ton aide

  20. #20
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut
    Comme promis

    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Public Sub create_Excel_file()
    On Error GoTo Err_create_Excel_file
    '**** DECLARATION DES VARIABLES
    Dim xlApp As Excel.Application
    Dim xlWkb As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
     
    Dim rstData As DAO.Recordset            ' recordset contenant les données à exporter
     
    Dim strFile_name As String
    Dim strFile_path As String
     
    Dim intNb_Ligne_Max As Long         ' Nombre de ligne maximum dans une feuille Excel
    Dim intCpt As Integer
     
    '**** INITIALISATION DES VARIABLES
        intNb_Ligne_Max = 65534
        '--- Détermination du nom du fichier
        strFile_path = "Ton Chemin"
        strFile_name = strFile_path & "Ton nom de fichier"
     
    '**** CODE DE LA PROCEDURE/FONCTION --------------------------------
    '--- Ouverture d'un nouveau fichier selon un modèle
        Set xlApp = CreateObject("Excel.Application")
     
    '--- Ouverture du fichier destination
        Set xlWkb = xlApp.Workbooks.Add()
     
    '--- Chargement des données à exorter dans le recordset
        Set rstData = CurrentDb.OpenRecordset("SELECT item FROM " & _
                                                         "(SELECT auto, nom as item, 'NOM' FROM matable " & _
                                                          "UNION " & _
                                                          "SELECT auto, prénom as item, 'PRENOM' FROM matable " & _
                                                          "ORDER BY 1, 3);")
     
    '--- Exportation des données
        '---     Vérification des données à transférer
        If rstData.EOF = False Then
            rstData.MoveLast    ' obligatoire pour avoir le nb de ligne (pb access)
            If rstData.RecordCount > intNb_Ligne_Max Then
                MsgBox "Votre sélection contient trop de ligne." & vbCrLf & _
                       "Le nombre de ligne maximum supporté est " & intNb_Ligne_Max & vbCrLf & _
                       "Modifiez les critères de votre requête avant de retenter une exportation", vbCritical
                GoTo Exit_create_Excel_file
            End If
            rstData.MoveFirst  ' obligatoire pour charger toutes les données dans excel
                                ' et non juste les record suivant le record actif (pb access)
        Else
            MsgBox "Vous ne pouvez pas exporter une sélection vide." & vbCrLf & _
                    "Modifier les critères de votre requête avant de retenter une exportation", vbCritical
            GoTo Exit_create_Excel_file
        End If
     
        '--- Exportation des données dans le fichier excel
        Set xlSheet = xlWkb.Worksheets(0)
        xlSheet.Activate
        xlApp.Range("A1").CopyFromRecordset rstData
        rstData.Close
     
    '--- Sauvegarde du résultat
        xlApp.DisplayAlerts = False ' évite les msg de warning si le fichier existe déjà
        '--- Sauvegarde du fichier
        xlWkb.SaveAs strFile_name
     
    Exit_create_Excel_file:
        xlApp.DisplayAlerts = True
        xlApp.ScreenUpdating = True
        xlApp.Quit
     
    '**** LIBERATION DE LA MEMOIRE
        Set xlSheet = Nothing
        Set xlWkb = Nothing
        Set xlApp = Nothing
     
        Set rstData = Nothing
     
        Exit Sub
     
    '**** GESTION DES ERREURS
    Err_create_Excel_file:
        MsgBox Error$
        Resume Exit_create_Excel_file
    End Sub
    C'est un copie un peu modifiée d'un code que j'utilise depuis un an maintenant.
    Il compile mais je ne sais pas s'il tourne correctement après modifcation, je n'ai pas le temps de faire le test.
    Il faut que tu mettes ce code dans un module VBA puis que tu lances la fonction create_Excel_file quelque part dans ton appli access.
    Attention, il faut que tu modifie certains trucs dans le code pour insérer les données propres à ta base et à ton fichier.
    Je n'allais quand même pas tout te faire. Ce sera un très bon exercice

Discussions similaires

  1. [VI-2010] exporter un modele de base de donnée dans Excel
    Par astroflo dans le forum Visio
    Réponses: 0
    Dernier message: 19/11/2012, 00h05
  2. Exporter et importer une base de données dans postgresql
    Par simosiso1 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 17/08/2011, 13h23
  3. exploiter une base de donnée dans excel
    Par rgwarrior dans le forum Excel
    Réponses: 1
    Dernier message: 06/12/2010, 15h22
  4. Réponses: 0
    Dernier message: 27/04/2010, 12h43
  5. Rechercher des informations dans une base de donnée en excel
    Par simonasjdp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/07/2009, 19h10

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