Comment copier ou déplacer des fichiers d'un dossier à un autre en fonction d'une liste dans Excel ?
Si vous avez une liste de noms de fichiers dans une colonne d'une feuille de calcul, et que les fichiers se trouvent dans un dossier sur votre ordinateur. Cependant, maintenant, vous devez déplacer ou copier ces fichiers dont les noms sont listés dans la feuille de calcul depuis leur dossier d'origine vers un autre, comme le montre la capture d'écran suivante. Comment pourriez-vous accomplir cette tâche aussi rapidement que possible dans Excel ?
Copier ou déplacer des fichiers d'un dossier à un autre en fonction d'une liste dans Excel avec du code VBA
Pour déplacer des fichiers d'un dossier à un autre en fonction d'une liste de noms de fichiers, le code VBA suivant peut vous aider, veuillez procéder comme suit :
1. Maintenez les touches Alt + F11 enfoncées dans Excel, ce qui ouvre la fenêtre Microsoft Visual Basic for Applications.
2. Cliquez sur Insérer > Module, puis collez le code VBA suivant dans la fenêtre Module.
Code VBA : Déplacer des fichiers d'un dossier à un autre en fonction d'une liste dans Excel
Sub movefiles()
'Updateby Extendoffice
Dim xRg As Range, xCell As Range
Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
Dim xSPathStr As Variant, xDPathStr As Variant
Dim xVal As String
On Error Resume Next
Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = " Please select the original folder:"
If xSFileDlg.Show <> -1 Then Exit Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = " Please select the destination folder:"
If xDFileDlg.Show <> -1 Then Exit Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
For Each xCell In xRg
xVal = xCell.Value
If TypeName(xVal) = "String" And xVal <> "" Then
FileCopy xSPathStr & xVal, xDPathStr & xVal
Kill xSPathStr & xVal
End If
Next
End Sub
3. Appuyez ensuite sur la touche F5 pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner les cellules contenant les noms de fichiers, voir capture d'écran :
4. Cliquez ensuite sur le bouton OK, et dans la fenêtre qui s'affiche, sélectionnez le dossier contenant les fichiers que vous souhaitez déplacer, voir capture d'écran :
5. Cliquez ensuite sur OK, puis continuez en sélectionnant le dossier de destination où vous souhaitez placer les fichiers dans une autre fenêtre qui s'affiche, voir capture d'écran :
6. Enfin, cliquez sur OK pour fermer la fenêtre, et maintenant, les fichiers ont été déplacés vers un autre dossier que vous avez spécifié en fonction des noms de fichiers dans la liste de la feuille de calcul, voir capture d'écran :
Remarque : Si vous souhaitez simplement copier les fichiers vers un autre dossier tout en conservant les fichiers d'origine, veuillez appliquer le code VBA ci-dessous :
Code VBA : Copier des fichiers d'un dossier à un autre en fonction d'une liste dans Excel
Sub copyfiles()
'Updateby Extendoffice
Dim xRg As Range, xCell As Range
Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
Dim xSPathStr As Variant, xDPathStr As Variant
Dim xVal As String
On Error Resume Next
Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = "Please select the original folder:"
If xSFileDlg.Show <> -1 Then Exit Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = "Please select the destination folder:"
If xDFileDlg.Show <> -1 Then Exit Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
For Each xCell In xRg
xVal = xCell.Value
If TypeName(xVal) = "String" And xVal <> "" Then
FileCopy xSPathStr & xVal, xDPathStr & xVal
End If
Next
End Sub

Découvrez la magie d'Excel avec Kutools AI
- Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
- Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
- Codage VBA : Écrivez et implémentez du code VBA sans effort.
- Interprétation des formules : Comprenez facilement des formules complexes.
- Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !