Savoir extraire des fichiers Excel à partir de plusieurs dossiers à l'aide de Visual Basic pour Applications (VBA ) peut vous faire gagner du temps lorsque vous avez besoin de rechercher sur votre ordinateur les fichiers Excel pour les stocker dans un dossier. VBA peut être utilisé dans des applications Microsoft Office tels que Excel pour automatiser les tâches de routine telles que la recherche de fichiers dans des dossiers. La meilleure façon de rechercher des fichiers dans plusieurs dossiers est d'utiliser la programmation récursive. Programmation récursive est utilisée lorsque vous avez besoin d'une fonction à appeler lui-même au sein de la fonction . Choses que vous devez Microsoft Office Voir Plus Instructions 1 lancement de Microsoft Office Excel , cliquez sur " Developer " et cliquez sur " Visual Basic " pour lancer l'éditeur VB . Cliquez sur le menu "Insertion " et cliquez sur "Module" pour insérer un nouveau module de code 2 Tapez la suivante pour créer un nouveau sous-procédure : . ColFiles As New Collection 3 Copiez et collez la commande suivante pour créer vos variables : extractPath Dim As String fileName Dim As String Dim pos As Integer 4 définir le chemin où vous voulez copier les fichiers Excel trouvés : extractPath = "C: \\ Temp \\ " 5 Ajoutez le code suivant pour appeler la fonction qui va trouver les fichiers Excel pour l'extraction : Photos colFiles de RecursiveDir , " F: \\ moreExcelFiles \\", " *. xlsx ", True 6 < p> Ajoutez le code suivant pour copier les fichiers trouvés sur le chemin défini à l'étape 3: Photos vFile As Variant Chaque vFile en colFiles pos = InStrRev ( vFile , "\\" , vbTextCompare ) filename = Right ( vFile , Len ( vFile ) - pos) FileCopy vFile , extractPath & fileName Suivant vFile < br > End Sub 7 définir la fonction " RecursiveDir " pour rechercher les dossiers et sous-dossiers pour les fichiers Excel : RecursiveDir fonction publique ( colFiles que la collecte, _ strFolder As String , _ strFileSpec As String , _ bIncludeSubfolders As Boolean ) strTemp As cordes colFolders As nouvelle Collection vFolderName As Variant strFolder = TrailingSlash ( strFolder ) strTemp = Dir ( strFolder & strFileSpec ) Do While strTemp <> ; vbNullString colFiles.Add strFolder & strTemp strTemp = Dir boucle Si bIncludeSubfolders Puis strTemp = Dir ( strFolder , vbDirectory ) Do While strTemp <> vbNullString ( strTemp <> " . " ) et ( strTemp <> ".." ) Puis ( GetAttr ( strFolder & strTemp ) et vbDirectory ) < > 0 Then colFolders.Add strTemp End If End If < p> strTemp = Dir boucle Chaque vFolderName En colFolders Appel RecursiveDir ( colFiles , strFolder & vFolderName , strFileSpec , True) Suivant vFolderName Photos End If End Function 8 Créer la fonction suivante pour ajouter ou supprimer le "\\" des chemins de dossier : publique TrailingSlash de fonction ( strFolder As String ) As String Si Len ( strFolder ) > 0 Then droite ( strFolder , 1) = "\\" Alors TrailingSlash = strFolder Else TrailingSlash = strFolder & "\\" End If End If End Function < br > 9 cliquez dans la " extractExcelFiles " sous-procédure et cliquez sur " F5" pour exécuter le programme .
|