Déplacer un fichier en VBA

Bonjour,

J'ai récupéré ce code qui fonctionne parfaitement pour déplacer un fichier avec une extension .txt vers un autre dossier.

Sub deplacer()

    Dim objOFS As Variant
    Const SourceTxt = "C:\test*.txt"
    Const Destin = "C:\Test REPORTING\Archives"

    Set objOFS = CreateObject("Scripting.FileSystemObject")
    'Test si au moins nun fichier present
    If Dir(SourceTxt) <> "" Then
        objOFS.moveFile SourceTxt, Destin
    Else
        MsgBox "Pas de fichier a déplacer!!!"
    End If

    Set objOFS = Nothing

End Sub

J'ai adapté ce code pour déplacer un fichier avec une extension pdf, mais j'ai le message d'erreur "Permission refusée" à la ligne 10 ,

objOFS.moveFile SourcePdf, Destin

je ne comprends pas pourquoi. Merci de votre aide.

Sub deplacer()

    Dim objOFS As Variant
    Const SourcePdf = "C:\REPORTING*.pdf"
    Const Destin = "C:\Test REPORTING\Archives"

    Set objOFS = CreateObject("Scripting.FileSystemObject")
    'Test si au moins nun fichier present
    If Dir(SourcePdf) <> "" Then
        objOFS.moveFile SourcePdf, Destin
    Else
        MsgBox "Pas de fichier a déplacer!!!"
    End If

    Set objOFS = Nothing

End Sub

Bonjour,

Le code semble bon ...

2 pistes à étudier :

  • le répertoire de copie n'est pas accessible en écriture (peu probable si ça fonctionne avec un txt)
  • le fichier .pdf est "tenu" par quelque chose (fichier ouvert ? fichier pdf qui a planté ?)
=> essayer de tuer pdf avec le gestionnaire des tâches et recommencer l'opération.

Il n'y a pas de raison que ça affiche ce message !

Bonne journée

Bouben

P.S. : c'est un message Windows, en faisant le même déplacement à la main, c'est probable que tu aies le même message

Bonjour à tous

Tu peux toujours essayer ce code :

Sub Transfert()

    nomFichier = "Test.jpg"                     'Nom du fichier avec extension
    sourceW = "C:\...\Dossier Source\"          'Chemin d'accès du dossier "Dossier Source"
    destinationW = "C:\...\Dossier Cible\"      'Chemin d'accès du dossier "Dossier Cible"

    If Dir(sourceW & nomFichier) = "" Then
        MsgBox "Pas de fichier à déplacer", 16
        End
    End If

    FileCopy sourceW & nomFichier, destinationW & nomFichier        'On fait un copier coller
    Kill sourceW & nomFichier                                       'On supprime le fichier dans le dossier source
End Sub

Bye !

Bonjour Bouben,

Effectivement, j'ai étudié ta piste n°2, le fichier pdf était bien "tenu" par quelque chose. Là çà marche parfaitement.

Merci.

Bonjour Gmb,

Je voudrais tester ton code, mais mon fichier "Testxxxxx.pdf" a un nom variable, dois-je mette comme ceci ?

nomFichier = "Test*.pdf"

Cordialement.

Rechercher des sujets similaires à "deplacer fichier vba"