Lister le nom des onglets d'un feuille excel avec access vb [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 11 novembre 2005
Statut
Membre
Dernière intervention
21 août 2008
-
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
-
Bonjour,
J'ai besoin dans un formulaire Access de lister le nom des onglets d'une feuille Excel et de faire l'import de celui qui a été sélectionné. Ceci sans utiliser l'assistant d'import Access, puisque cette appli est exécuter avec le RunTime access.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Merci de votre aide.

1 réponse

Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
Pour lister le nom des onglets de ton fichier Excel à partir d'ACCESS, tu dois ouvrir un objet Excel.
Pour cela, il faut déjà que dans ton projet, tu références Excel :
Menu Outils\Référence\Microsoft Excel 11.0 doit être coché

Ensuite, tu adaptes à ce dont tu as besoin, ce p'tit bout de code que je viens de te faire à l'arrache :

Dim Fichier As Excel.Application
Dim FichierTest As Excel.Workbook
Dim i As Integer
Dim Temp As String

Set Fichier = CreateObject("Excel.Application")
Fichier.Visible = True
Set FichierTest = Fichier.Workbooks.Open("C:\test.xls") 'Chemin du fichier

Temp = ""
For i = 1 To FichierTest.Sheets.Count
Temp = Temp & FichierTest.Sheets(i).Name & Chr(10)
Next i

Fichier.Workbooks("test.xls").Close
Set Fichier = Nothing

Avec ce code, écrit dans un bouton d'un formulaire ACCESS, je force l'ouverture de mon fichier Excel test.xls, je récupère le nom des différentes feuilles dans une variable que j'affiche dans un msgbox, une fois le fichier Excel refermé.

Pour l'import de celui qui est sélectionné, cela va être beaucoup plus dur puisque tu pilotes à partir d'ACCESS, je pense qu'il va falloir que tu cherches du côté de :
ActiveCell.Worksheets.Name (ActiveWorkbook existe, mais à priori, pas ActiveWorksheet), tu récupèreras ainsi le nom de l'onglet sélectionné dans une cellule et après, à toi de gérer tes opérations.
L'import sera à gérer avec la commande DoCmd.TransferText (je te laisse chercher dans l'aide d'ACCESS) ou alors, via une macro dans ACCESS si tu développes une interface complète, c'est peut être même plus pratique. A voir selon tes besoins.

Bonne recherche ^^

Molenn