Macro excel:coder "pour toutes les feuilles&q
pitchounette
-
JvDo Messages postés 1924 Date d'inscription Statut Membre Dernière intervention -
JvDo Messages postés 1924 Date d'inscription Statut Membre Dernière intervention -
dans une macro excel, comment coder :
- "pour tous les fichiers .XLS d'un répertoire"
et
- "pour toutes les feuilles d'un fichier"
Merci pour votre réponse !
- "pour tous les fichiers .XLS d'un répertoire"
et
- "pour toutes les feuilles d'un fichier"
Merci pour votre réponse !
1 réponse
-
Bonsoir,
1) pour les fichiers :Option Explicit Public dossier Public Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type '32-bit API declarations Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long Sub macro_sur_fichiers_xls_Dossier() ' recherche les feuilles de calcul dans une arborescence d'un dossier (et sous dossiers si ".SearchSubFolders = True") ' Dim fs, i, V_Dossier, V_Nb_Files Dim fso As New FileSystemObject V_Dossier = GetDirectory("choisissez le dossier à traiter ") If V_Dossier <> "" Then Set fs = Application.FileSearch With fs .LookIn = V_Dossier .SearchSubFolders = True .FileType = msoFileTypeExcelWorkbooks If .Execute() > 0 Then V_Nb_Files = .FoundFiles.Count MsgBox "Ce dossier contient " & V_Nb_Files & " fichier(s) répondant aux critères." For i = 1 To V_Nb_Files Cells(i + 1, 1).Value = .FoundFiles(i) 'affiche les fichiers dans la feuille de calcul. mettre ici le traitement Next i Else MsgBox "Aucun fichier n'a été trouvé." End If End With End Sub
2) pour les feuilles d'un classeur :Sub mesfeuilles() Dim i i = 1 For Each vfeuille In ActiveWorkbook.Sheets Cells(i, 1) = vfeuille.Name i = i + 1 Next End Sub
un For Each / Next convient
cordialement