Lister le nom des onglets d'un feuille excel avec access vb

Résolu
dakar2003 Messages postés 3 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 21 août 2008 - 15 mai 2006 à 16:54
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 - 16 mai 2006 à 14:15
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

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
16 mai 2006 à 14:15
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
3
Rejoignez-nous