FileCopy Avec Source Variable et Destination Variable

Bonjour je dispose d'un fichier dans lequel j'ai dans la colonne L les chemin source et la colonne N dans laquelle j'ai la destination

Colonne K "C:\Users\kryo9\OneDrive\Bureau\Dossier CENTRAKOR\Dossier CENTRAKOR\Boutons Décors\Base article\0787117100204_EMB.jpg"

Colonne N "C:\Users\kryo9\OneDrive\Bureau\Dossier CENTRAKOR\Dossier CENTRAKOR\Boutons Décors\Base article\0787117100204_EMB.jpg"

lorsque je clique sur le bouton j'ai une erreur d’exécution 52 : Nom ou numéro de fichier incorrect

j'ai pourtant tester l'url mais sans les "" et j'arrive bien sur mon image

Private Sub CommandButton3_Click()
    Application.ScreenUpdating = False
    Dim Donnees As Worksheet, DerniereLigne&, i&
    Dim FileSource As String
    Dim FileDest As String
        Set Donnees = ThisWorkbook.Sheets("Feuil1")
        DerniereLigne = Donnees.Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To DerniereLigne
      FileSource = Donnees.Range("L" & i).Value
      FileDest = Donnees.Range("N" & i).Value
       FileCopy FileSource, FileDest
        Next
       End Sub 

        

Merci pour votre aide

Bonjour,

peut-on voir ton fichier ?

Voici le fichier

30images.xlsm (147.64 Ko)

Bonjour,

le répertoire de destination existe-t-il ?

Oui les répertoire existent bien

Bonsoir,

le problème vient bien des noms de fichiers (ou du système de gestion des fichiers, onedrive en l'occurrence) et non de la macro.

peux-tu essayer cette version du code ?

Private Sub CommandButton3_Click()

    Application.ScreenUpdating = False
    Dim Donnees As Worksheet, DerniereLigne&, i&, repdest As String
    Dim FileSource As String
    Dim FileDest As String
    Set Donnees = ThisWorkbook.Sheets("Feuil1")
    DerniereLigne = Donnees.Cells(Rows.Count, 2).End(xlUp).Row
    For i = 2 To DerniereLigne
        FileSource = Donnees.Range("L" & i).Value
        If Dir(FileSource) <> "" Then 'vérifie que le fichier source existe
            FileDest = Donnees.Range("N" & i).Value
            repdest = Left(FileDest, InStrRev(FileDest, "\") - 1)
            If Dir(repdest, vbDirectory) <> "" Then 'vérifie que le répertoire de destination existe
                FileCopy FileSource, FileDest
            Else
                MsgBox "je ne trouve pas le répertoire " & repdest
            End If
        Else
            MsgBox " je ne trouve pas le fichier " & FileSource
        End If
    Next i

End Sub

dis-nous ce que cela donne.

Bonsoir,

Cela me retourne la même erreur Nom de fichier ou numéro incorrect (Erreur 52) rien d'autre

Trouvé grâce à toi, alors j'avais lu qu'il fallait pour la fonction FileCopy des " en début et en fin, et ce n'est pas du tout le cas, même s'il y a des espaces dans votre arborescence.

Donc si erreur 52, pensez à enlever les guillemets

Merci a toi, Voici donc le code qui fonctionne

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
    Dim Donnees As Worksheet, DerniereLigne&, i&, repdest As String
    Dim FileSource As String
    Dim FileDest As String
    Set Donnees = ThisWorkbook.Sheets("Feuil1")
    DerniereLigne = Donnees.Cells(Rows.Count, 2).End(xlUp).Row
    For i = 2 To DerniereLigne
        FileSource = Donnees.Range("X" & i).Value
        If Dir(FileSource) <> "" Then 'vérifie que le fichier source existe
            FileDest = Donnees.Range("Y" & i).Value
            repdest = Left(FileDest, InStrRev(FileDest, "\") - 1)
            If Dir(repdest, vbDirectory) <> "" Then 'vérifie que le répertoire de destination existe
                FileCopy FileSource, FileDest
            Else
                MsgBox "je ne trouve pas le répertoire " & repdest
            End If
        Else
            MsgBox " je ne trouve pas le fichier " & FileSource
        End If
    Next i
End Sub

PS : j'ai également deplacé mes répertoires, mais cela n'avait eut aucun impacte, et voici mes deux colonnes

X

D:\Dossier CENTRAKOR\Dossier CENTRAKOR\Boutons Décors\Base article\0787117100204_EMB.jpg

Y

D:\Dossier CENTRAKOR\Dossier copie CENTRAKOR\Boutons Décors\Base article\7112-0-67.jpg

bonsoir,

Trouvé grâce à toi, alors j'avais lu qu'il fallait pour la fonction FileCopy des " en début et en fin, et ce n'est pas du tout le cas, même s'il y a des espaces dans votre arborescence.

ça m'a échappé, bien vu !

Rechercher des sujets similaires à "filecopy source variable destination"