Déplacer des fichiers PDF de plusieurs dossier vers un seul dossier (script VBA)

Résolu
selrach75 Messages postés 2 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je rencontre un problème concernant le déplacement de fichiers (PDF) provenant de plusieurs dossiers (sous-dossiers) vers un dossier unique.

J'utilise VBA pour faire ce déplacement avec le script ci-dessous :

Sub CopieFichier()
 
'copier fichier (nom différent, emplacement différent)
Dim FichierOriginal As String
Dim FichierCopie As String
 
  Dim numero As Integer
    numero = 2 'Numéro de départ (correspond ici au n° de ligne et au n° de numérotation)
'Destination URL = "https://monserveur.net/sites/mon-site/Shared Documents/mon-dossier/test.txt"
' => il est nécessaire de le transformer de manière suivante:
 
    While numero <= 15000 'TANT QUE la variable numero est <= 12, la boucle est répétée
   
FichierOriginal = Cells(numero, 3)
FichierCopie = "C:\Users\Michel.Martin\OneDrive - Tesla\modely\Migration\fr\Batch_5\Batch_5_fr\" & Cells(numero, 1).Value
 
FileCopy FichierOriginal, FichierCopie
 
        numero = numero + 1 'Le numéro est augmenté de 1 à chaque boucle
    Wend
 
 
End Sub

Cependant je rencontre des erreurs à cause de caractères non pris en compte comme des lettres Russes.
Est-ce possible d'adapter le script pour "sauter" l'erreur et/ou ajouter un colonne dans mon fichier qui annonce si le fichier a bien été copier dans le dossier unique?

Merci d'avance

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    une suggestion, non testée (qui ajoute ok ou NOK en colonne D):
    Sub CopieFichier()
     
    'copier fichier (nom différent, emplacement différent)
    Dim FichierOriginal As String
    Dim FichierCopie As String
    Dim numero As Integer
        numero = 2 'Numéro de départ (correspond ici au n° de ligne et au n° de numérotation)
    'Destination URL = "https://monserveur.net/sites/mon-site/Shared Documents/mon-dossier/test.txt"
    ' => il est nécessaire de le transformer de manière suivante:
     
    On Error GoTo copienok
    While numero <= 15000 'TANT QUE la variable numero est <= 12, la boucle est répétée
        FichierOriginal = Cells(numero, 3)
        FichierCopie = "C:\Users\Michel.Martin\OneDrive - Tesla\modely\Migration\fr\Batch_5\Batch_5_fr\" & Cells(numero, 1).Value
        FileCopy FichierOriginal, FichierCopie
        Cells(numero, 4) = "ok"
    finboucle:
        numero = numero + 1 'Le numéro est augmenté de 1 à chaque boucle
    Wend
    On Error GoTo 0
    Exit Sub
    copienok:
    Cells(numero, 4) = "NOK"
    Resume finboucle
    End Sub
    0
    1. selrach75 Messages postés 2 Statut Membre
       
      Merci yg_be ça fonctionne parfaitement ;)
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > selrach75 Messages postés 2 Statut Membre
         
        parfait, peux-tu alors marquer la discussion comme résolue?
        0