Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

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 dans une feuille de calcul, et les fichiers localiser dans un dossier dans votre ordinateur. Mais, maintenant, vous devez déplacer ou copier ces fichiers dont les noms sont listés dans la feuille de calcul à partir de leur dossier d'origine vers un autre comme illustré ci-dessous. Comment pourriez-vous terminer cette tâche aussi vite que possible dans Excel?

Copier ou déplacer des fichiers d'un dossier à un autre en fonction d'une liste dans Excel avec le code VBA


Copier ou déplacer des fichiers d'un dossier à un autre en fonction d'une liste dans Excel avec le code VBA


Pour déplacer les fichiers d'un dossier à un autre en fonction d'une liste de noms de fichiers, le code VBA suivant peut vous faire une faveur, veuillez faire ceci:

1. Maintenez le Alt + F11 clés dans Excel, et il ouvre la Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet 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. Et puis appuyez sur F5 clé pour exécuter ce code, et une boîte de dialogue apparaîtra pour vous rappeler de sélectionner les cellules qui contiennent les noms de fichiers, voir capture d'écran:

4. Puis clique OK Dans la fenêtre qui apparaît, sélectionnez le dossier contenant les fichiers que vous souhaitez déplacer, voir capture d'écran:

5. Et puis cliquez OK, continuez à sélectionner le dossier de destination où vous voulez localiser les fichiers dans une autre fenêtre, voir capture d'écran:

6. Enfin, cliquez OK pour fermer la fenêtre, et maintenant, les fichiers ont été déplacés dans un autre dossier que vous avez spécifié en fonction des noms de fichiers dans la liste des feuilles de calcul, voir capture d'écran:

Note: Si vous souhaitez simplement copier les fichiers dans un autre dossier, mais conserver 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


Outils de productivité recommandés

Office Tab

étoile d&#39;or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d&#39;or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d&#39;or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d&#39;écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Fer · 26 days ago
    en el codigo que copia ¿como puedo colorear el nombre de la lista que no encuentre?
  • To post as a guest, your comment is unpublished.
    Johnette · 1 months ago
    I cannot get either version to work in Windows 10.


    Argggg
  • To post as a guest, your comment is unpublished.
    Andy · 4 months ago
    Any tips on how to modify the code to add a wide card? I have an archive of hundreds of PDF files that are 10 digit numbers and revision level (XXXXXXXXXX_REVA). I can export a list of file names very easily from our ERP system, but the list is missing the revision and file extension. Is there a way to add wild cards into the program to ignore everything BUT the 10 digit number?
  • To post as a guest, your comment is unpublished.
    PWD · 5 months ago
    Hello,
    how to make this code copy files from subfolders?
  • To post as a guest, your comment is unpublished.
    Pr · 6 months ago
    Hi Guys,

    How I need to change '' If TypeName(xVal) = "String" And xVal <> "" Then '' to move files based on partial file name.


    Thanks in advance,
    Best regards, P