Coucou,
pour simplifier l'importation de feuilles excel je souhaiterais pouvoir disposer de la liste des noms des feuilles d'un fichier excel donné.
Comment faire cela en vba svp ?
a+
8)
Coucou,
pour simplifier l'importation de feuilles excel je souhaiterais pouvoir disposer de la liste des noms des feuilles d'un fichier excel donné.
Comment faire cela en vba svp ?
a+
8)
Ceci est une partie d'une procédure me permettant de copier des données se trouvant dans plusieurs feuilles se trouvant elles même dans plusieurs classeurs.
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
36
37
38
39
40
41
42
43
44 Public Sub JeCopieOuJeVeux() Dim I As Integer Dim ObjExcel As Excel.Application Dim MaFeuille As Excel.Worksheet Dim MonClasseur As Excel.Workbook sChemin = "H:\DATA\Développement\Prev_ventes\Octobre\" 'Définition des critères de recherche des fichiers : - Location ' - Recherche dans les sous-dossiers ' - Type de fichier With Application.FileSearch .NewSearch .LookIn =sChemin = "H:\DATA\Développement\Prev_ventes\Octobre\" .SearchSubFolders = True .FileType = msoFileTypeExcelWorkbooks 'si on trouve des fichiers correspondant au critère If .Execute() > 0 Then MsgBox "Il y a " & .FoundFiles.Count & _ " fichier(s) correspondant aux critères voulus.", vbInformation 'Récupération du nom du fichier For I = 1 To .FoundFiles.Count sNomFic = .FoundFiles.Item(I) 'MsgBox "Le fichier qui va être ouvert est " & sNomFic & " !", vbInformation 'Instanciation de l'objet Excel Set ObjExcel = New Excel.Application 'Ouverture du fichier ObjExcel.Workbooks.Open sNomFic, False, False, , "", "", True 'pas de messages d'alerte ObjExcel.DisplayAlerts = False 'pas de messages demandant de faire la mise à jour des liens ObjExcel.ActiveWorkbook.UpdateLinks = xlUpdateLinksNever ObjExcel.Visible = True ObjExcel.DisplayAlerts = True Set MaFeuille = ObjExcel.ActiveWorkbook.Worksheets(1) For Each MaFeuille In ObjExcel.ActiveWorkbook.Worksheets 'nom de la feuille sNomFeuille = MaFeuille.Name Debug.Print sNomFeuille MaFeuille.Activate Next MaFeuille end if end with end sub
Bonjour,
Comme ceci:
Argy
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 Private Function GetSheetNames() As String() Dim I As Long Dim aSheetNames() As String For I = 1 To ActiveWorkbook.Sheets.Count ReDim Preserve aSheetNames(1 To I) aSheetNames(I) = Sheets(I).Name Next GetSheetNames = aSheetNames End Function Sub ListSheetNames() Dim I As Long Dim aSheetNames() As String aSheetNames = GetSheetNames For I = LBound(aSheetNames) To UBound(aSheetNames) Debug.Print aSheetNames(I) Next End Sub
Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.
Ils comptent sur vous...
Web Site ‡ @Mail
Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
MDB Viewer : Visionneuse Access v4.0
Merci les gars !
Mais avec mes gros doigts boudinés et mon cerveau hors du communj'ai trouvé ça, c'est plus simple et ça marche nickel.
++
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Set appExcel = CreateObject("Excel.Application") appExcel.Workbooks.Open FileName:="c:\Classeur2a.xls" Dim feuille As Object For Each feuille In appExcel.sheets MsgBox feuille.Name Next feuille
Partager