Déplacer fichiers d'un répertoire vers un autre d'après une liste - VBA

Fermé
Alan9191 Messages postés 1 Date d'inscription vendredi 22 février 2019 Statut Membre Dernière intervention 22 février 2019 - 22 févr. 2019 à 16:11
yg_be Messages postés 23461 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 février 2025 - 22 févr. 2019 à 22:06
Bonjour à tous :)

Je n'arrive pas à modifier une macro, je suis novice en VBA.
Vous pouvez voir ci-dessous la macro movefiles qui a pour actions :

1. Elle me demande de sélectionner la plage de la liste sur le fichier excel et un dossier d'origine (AA) puis un dossier de destination (BB).
2. Elle lit une liste et déplace les fichiers qui ont le même nom d'un dossier AA à un dossier BB.


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


Mon objectif est de modifier la macro pour déplacer les images qui comportent les EAN d'une liste, d'un dossier AA à un dossier BB.
En bleu dans les images, c'est des exemples de ce que la macro devrait renvoyer.

Ce que je voudrais idéalement / Choix n°1 :
1. La macro lit les codes de ma liste en colonne A
2. Pour chaque code, elle déplace tous les fichiers qui comportent ce code dans leurs noms
3. En colonne B,C,D,E, elle écrit le nom exact du ou des fichiers déplacés (maximum 4/5 fichiers)



Ce que je voudrais sinon / Choix n°2 :
1. La macro lit les codes de ma liste en colonne A
2. Pour chaque code, elle déplace tous les fichiers qui comportent ce code dans leurs noms
3. En colonne B, elle écrit "OUI" si un ou plusieurs fichiers comportant le code ont été déplacés ou "NON" si aucun fichiers n'a été trouvé avec le code dans son nom.


J'espère avoir été clair, merci pour votre aide. :)
A voir également:

1 réponse

yg_be Messages postés 23461 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 5 février 2025 Ambassadeur 1 564
22 févr. 2019 à 22:06
tu écris que tu es novice en VBA, et que ton objectif est de modifier la macro.
souhaites-tu ne pas rester novice, et acquérir les compétences pour réaliser ton objectif?
0