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 :

Exporter donnees Excel dans Access VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 33
    Par défaut Exporter donnees Excel dans Access VBA
    Bonjour,

    Débutante en programmation, je souhaiterai exporter des données d’un tableur Excel d’une seule feuille vers une table Access contenant les mêmes en-têtes de colonnes. C’est une exportation de nombreuses lignes à réaliser quotidiennement et je souhaite garder toutes mes données antérieures sur Access (en gros je me serts d'Access comme lieu de stockage de mes données Excel pour l’année).
    Grâce aux différentes infos trouvées sur les forums notamment j’ai pu trouver certains codes que j’ai adaptés à ma situation. Le code est le suivant :

    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
    Private Sub test()
       Dim appAccess As Object
       Dim aPath, aDbase, aDSource, aTable, exePath As String
       Dim fileParam As String
       aPath = ActiveWorkbook.Path
       aDbase = "Database1.accdb"
       aDSource = aPath & "\" & aDbase
     
      Set appAccess = CreateObject("Access.Application")
      appAccess.Visible = True
     
      appAccess.OpenCurrentDatabase aDSource
     
    Const acExport = 0
    Const acSpreadsheetTypeExcel12 = 9
    appAccess.DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "table test", "C:\Users\a0h35300\Documents\Database1.accdb", True, ""
     
     Application.DisplayAlerts = False
     ThisWorkbook.Saved = True
     Application.Quit
     Exit Sub
     End Sub



    Cette macro ne prend pas du tout les données ni les en-têtes contenues dans mon tableur pour les copier dans ma table Access.
    Par contre elle m’ouvre un nouveau document Excel avec les données et les en-têtes des colonnes de ma table (qui sont donc vides mais j’ai fais des tests et ca prend bien toutes les données de ma table quand il y en a).

    Du coup comment faire pour basculer les données Excel sur une table Access ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Const Fichier = "C:\Users\a0h35300\Documents\Database1.accdb"
    Dim Sql As String, Cn As Object
    Set Cn = CreateObject("Adodb.connection")
    With Cn
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";"
            .Open
            Sql = "INSERT INTO [table test] select frm.* FROM [Feuil1$] as frm  in '" & ThisWorkbook.FullName & "' 'excel 8.0;HDR=Yes;IMEX=1;' "
            .Execute Sql
            .Close
        End With
        Set Cn = Nothing
    End Sub

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 33
    Par défaut
    Merci beaucoup rdurupt, ca fonctionne tres bien !

    Aurais tu une astuce pour ouvrir mon fichier Access et supprimer les donnees de mon fichier excel une fois tranferees? Si possible, j'aimerai un msgbox me demandant confirmation avant

  4. #4
    Invité
    Invité(e)
    Par défaut
    Vue que tu Exporte d'excel vers Access pourquoi ne pas le faire dans la foulé via Excel?

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 33
    Par défaut
    C'est exactement ce que je cherche a faire: avoir un code VBA a la suite de mon exportation qui me demande si tout a bien ete transfere. Si je valide alors cela supprime les donnees de mon classeur excel. Sinon les donnees restent dans mon classeur.

  6. #6
    Invité
    Invité(e)
    Par défaut
    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
    Sub test()
    Const Fichier = "C:\Users\a0h35300\Documents\Database1.accdb"
    Dim Sql As String, RsClub As Object, Cn As Object, Rs As Object, sh As Worksheet
    Set Cn = CreateObject("Adodb.connection")
    With Cn
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";"
            .Open
           Set Rs = CreateObject("Adodb.recordset")
            Sql = "Select count(*)From [table test]"
            Rs.Open Sql, Cn
            nb = Rs(0)
            Rs.Close
            Sql = "INSERT INTO [table test] select frm.* FROM [Feuil1$] as frm  in '" & ThisWorkbook.FullName & "' 'excel 8.0;HDR=Yes;IMEX=1;' "
            .Execute Sql
             Set Rs = CreateObject("Adodb.recordset")
            Sql = "Select count(*)From [table test]"
            Rs.Open Sql, Cn
            If MsgBox("Voulez vous Vider le fichier Excel", vbQuestion + vbYesNo, "Enregistrements Ajoutés(" & Rs(0) - nb & ")") = vbYes Then ThisWorkbook.Sheets("Feuil1").Range("A2:D" & ThisWorkbook.Sheets("Feuil1").UsedRange.Rows.Count).EntireRow.Delete
            Rs.Close
            .Close
        End With
        Set Cn = Nothing
    End Sub
    Dernière modification par Invité ; 21/07/2016 à 15h59.

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

Discussions similaires

  1. Exporter donnees excel dans une table sql server
    Par sabari dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/03/2016, 10h58
  2. [AC-2003] Intégrer une macro Excel dans Access (VBA)
    Par HasH38 dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/01/2012, 18h27
  3. [AC-2003] erreur import donnees Excel dans Access
    Par Invité dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/04/2009, 16h33
  4. Exporter tableau Excel dans Access
    Par LP-mpascolo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/01/2008, 18h05
  5. [VBA-A]Travailler dans un fichier Excel dans Access
    Par pilou0013 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/05/2006, 12h21

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