|   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 . 
 
 |