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

Macros et VBA Excel Discussion :

[VBA]Importation données Access dans Excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut [VBA]Importation données Access dans Excel
    bonjour à tous,

    est ce que il y a quelqu'un qui peux montrer comment faire pour importer des données provenant d'une base de donnée Access vers excel en utilisant une macro, en fait pour l'instant je peux importer juste des données d'un fichier XL-2007 , je ne sais pas est ce que c'est pareil
    Voila comment je fais pour importer un fichier Xls
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Fichier = Application.GetOpenFilename("Fichier Excel, *.csv; *.xlsm;*.xls;*.xla;*.xlsx")
    Merci d'avance,
    Max,

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

    Il serait bon dans ton cas que tu précises les données dans Access, les données dans Excel, s'il y a transformation de celles-ci, filtrage.

    Ton code serait donc à partir d'Excel ?

    As-tu lu cela Choisir parmi les différentes méthodes d'export vers Excel

    Philippe

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    Bonsoir,
    Merci philipe pour ta réponse, en fait je debute en vba et ce que je veux faire pour l'instant c'est récuprer les donner d'une base de données acces et les coller dans une feuil de mon fichier excel

    Merci d'avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Tu ne réponds pas aux questions, les données c'est vague, c'est une table ? Plusieurs tables ? Toutes les tables ?

    Les données tel quel ? Avec filtre ?

    Merci de répondre aux questions que l'on te pose, si tu veux que les membres puissent te fournir de l'aider.

    Philippe

  5. #5
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, il y a une grande quantité de tutoriels qui seront à lire et assimiler, par exemple dans la FAQ http://excel.developpez.com/faq/?page=Access

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    bonjour,
    En faite je travaile sur l'auomatisation des données en excel 2007, je fais une macro por récupèrer toutes les données des fichier excel apres les copier dans mon fichier excel(ça c'est fait), actuellement j'ai un fichier access il faut que je récupère les donne de cette table acces ,pour l'instants je ne trouve comment faire


    Voila comment je fais pour importerles donner d'un fichier Xls:
    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
    Sub Bouton1_Clic()
    Reponse = MsgBox("Voulez vous charger l'Export de classeur1 pour l'année " & Range("B" & Range("D100")) & "?", vbQuestion + vbYesNo)
     
    If Reponse = vbYes Then
        Fichier = Application.GetOpenFilename("Fichier Excel, *.csv; *.xlsm;*.xls;*.xla;*.xlsx")
     
     
        'Range("A1:Z300000").Value = Null
      If Fichier <> False Then
     
      'ici je veux filtrer le fichier par exmple copier just les colonnes A B C et  juste les lignes des  semaine 1 2 3 4 de classeur1
        Annee = Range("C100")
     
        Sheets(Annee).Activate
        Var_chemin = Fichier
        Fichier1 = ActiveWorkbook.Name
        Workbooks.Open Var_chemin, local:=True
        Fichier2 = ActiveWorkbook.Name
     
        Workbooks(Fichier2).Sheets(1).Range("A1:Z300000").Copy Workbooks(Fichier1).Sheets(Annee).Range("A1:Z300000")
     
     
        Windows(Fichier2).Activate
        'ActiveWindow.Close
        ActiveWorkbook.Close savechanges:=False
        Windows(Fichier1).Activate
        Sheets("feuil1").Activate
        'Range("A1:Z300000").Select
        'ActiveSheet.Paste
      Else
        MsgBox "Vous n'avez exporté aucun fichier"
      End If
     
    End If
    End Sub

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re,dans le lien donné plus haut tu as : Comment importer les données d'une table Access vers un nouveau classeur Excel , ce qui me semble explicite

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    Bonjour kiki,
    je ne vois c ou Comment importer les données d'une table Access vers un nouveau classeur Excel su lien que tu m'as donné

    Merci
    maxim,

  9. #9
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    Bnjour kiki,
    merci pour ton aide, en fait j'ai essayé de faire la methode qui utilise la bibliothèque DAO ,quand j'exécute la macro j'aurai une erreure de compilation sur "Db As DAO.Database" type défini par l'utilisateur non défini

    j'essaye depuis tout à l'heure à faire l'importation et je n'arrive pas, en faite je travaille sur excel 2007 et le fichier que je veux importer c "Base de données2.mdb"


    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
    Sub Bouton21_Clic()
     
        Dim Db As DAO.Database
        Dim Rs As DAO.Recordset
        Dim strSQL As String
     
        Set Db = DAO.OpenDatabase("p:\document\desktop\Nouveau dossier\Base de données2.mdb", False, False)
        strSQL = "SELECT * FROM [Table1]"
        Set Rs = Db.OpenRecordset(strSQL, DAO.dbOpenSnapshot)
     
        Range("A1").CopyFromRecordset Rs
     
        Db.Close
     
    End Sub
    Merci bcp kiki

  11. #11
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re,dans l'exemple cité il faut tout lire : Nécessite d'activer la référence "Microsoft ActiveX Data Objects x.x Library". et dans ton cas
    Microsoft DAO x.x Object Library

    Sous VBE Outils/Références Cocher la référence concernée
    Sont-ce les yeux,les lunettes ou les 2 ?

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    merci bcp kiki29 la macro marche tres bien, par contre j'ajoute quoi pour quelle me copie le resultat dans une autre feuil (par exemple feuil4)

    Merci d'avance

  13. #13
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Re, qqch comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil4.Range("A1").CopyFromRecordset Rs
    Si Feuil4 est le CodeName de la feuille concernée
    voir pour cela http://www.developpez.net/forums/d92...cel/vba-bases/

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    bonsoir kiki,

    Merci bcp tt marche bien ,j'ai une question à propos du filtrage des données, est ce que c possible de filtrer le fichier access, c a d recupérer just les colonnes nécessaire, par exemple ajouter à la macro précédente un filtre qui copie just les colonnes A,B,C (en fait j'ai un fichier access avec plusieurs colonnes que j'en ai pas besoin)

    Merci d'avance

  15. #15
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,à adapter à ton contexte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT Nom,Prénom,Adresse FROM Contacts"
    Si les champs comportent des espaces, mettre des [] [Nom du Champ]

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    Merci bcp KiKi pour ton aide

    la macro fonctionne trés bien,maintenant je veux ajouter un autre bouton qui me fait un export des données copier du fichier access vers une autre feuil, parcontre il faut que j'exporte la somme de la colonne A pour chaque mois(collone b) et pour chaque région(colonne c) et coller le résultat dans une nouvelle feuil
    pour l'intstant j'ai un code qui me faitla fonction trier pour chaque 4 semaine(janvier 1-4, février 5-8....) je n'ai pas pu le modifier pour ajouter la somme et coller le resultat dans une nouvelle feuil dans mon fichier



    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
    Sub trier()
        Dim i&, fin&, aa As Variant, bb As Variant, a&
        With Feuil3
            fin = Feuil3.Range("A" & Rows.Count).End(xlUp).Row
            y = 1
            aa = Feuil3.Range("A2:D" & fin)
            For i = 1 To UBound(aa)
                aa(i, 4) = ""
            Next i
            For i = 1 To UBound(aa)
                If aa(i, 1) >= 1 And aa(i, 1) <= 4 Then aa(i, 4) = "oui": y = y + 1
            Next i
            If y = 1 Then Exit Sub
            ReDim bb(y - 1, 3)
            y = 1
            For i = 1 To UBound(aa)
                If aa(i, 4) = "oui" Then
                    For a = 1 To 3
                        bb(y, a) = aa(i, a)
                    Next a
                    y = y + 1
                End If
            Next i
        End With
        Feuil2.Cells.Clear
        Feuil2.Range("A1").Resize(UBound(bb), UBound(bb, 2)) = bb
    End Sub
    Merci bcp kiki

Discussions similaires

  1. [XL-2003] Importer données access dans une feuille Excel
    Par grimgrim dans le forum Excel
    Réponses: 2
    Dernier message: 11/05/2012, 03h31
  2. vba - Import Tables Access sous Excel
    Par House MD dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2008, 11h54
  3. [BO 6.5.1][VBA]Import données BO sous EXCEL. HELP
    Par sweetsugar dans le forum SDK
    Réponses: 2
    Dernier message: 15/02/2008, 13h37
  4. Importation données Access dans Excel
    Par pascalh dans le forum Excel
    Réponses: 1
    Dernier message: 25/09/2007, 16h54
  5. Import Requete Access dans Excel
    Par shadockgreg dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/09/2006, 17h03

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