Importation worksheet excel dans access en VBA

easy_smiler Messages postés 2 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 22 mars 2006 - 22 mars 2006 à 09:29
easy_smiler Messages postés 2 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 22 mars 2006 - 22 mars 2006 à 17:13
Bonjour à tous,

Dans le cadre du boulot, on me demande de me remettre au VBA et j'ai une pression d'enfer pour programmer un truc, dont voilà l'exposé.

J'ai un fichier Excel appelé "source.xls" qui est stocké à la racine (c :) de mon HDD. Ce fichier comporte 4 onglets ce mois ci, nommés A, B, C et D (mais les noms des onglets, le nombre d'onglet et le contenu des onglets peuvent varier chaque mois).

Je souhaite donc importer, chaque mois en pressant sur un bouton d'un formulaire, de façon automatique ce fichier dans Access en créant une table pour chaque onglet, dont le nom sera le nom de l'onglet et le contenu le contenu de l'onglet. Je n'y arrive pas du tout et je suis perdu.

Est-ce que l'un d'entre vous aurez un bout de code à me copier coller pour me sortir de cet enfer?

Merci d'avance.

2 réponses

cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
22 mars 2006 à 16:57
Bonjour,
apart faire un code derrière ton bouton de formulaire, qui selectionne ta plage de données de l'onglet A, et la collé dans la table par le principe du copier/coller et pareil pour les 3 autres...
Jordinette
0
easy_smiler Messages postés 2 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 22 mars 2006
22 mars 2006 à 17:13
Je me réponds moi même car je viens de trouver la solution. Voici le bout de code que j'ai collé derrière mon bouton de formulaire et qui fonctionne.

Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim Pathfic, NomFic As String
Dim i As Integer


Pathfic = "C:"
NomFic = "PL.xls"


Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(Pathfic & NomFic)


i = 1

Do While i <= xlBook.worksheets.Count
Set xlSheet = xlBook.worksheets(i)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, xlSheet.Name, Pathfic & NomFic, True, xlSheet.Name & "!"
i = i + 1
Set xlSheet = Nothing
Loop


Set xlBook = Nothing
Set xlApp = Nothing
0
Rejoignez-nous