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
*** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***
Merci les gars !
Mais avec mes gros doigts boudinés et mon cerveau hors du commun j'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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager