IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Déplacer 1 fichier "My.Computer.FileSystem.MoveFile" via VBA (Erreur 424 Objet requis)


Sujet :

VBA

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Logisticien
    Inscrit en
    Juin 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2024
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Déplacer 1 fichier "My.Computer.FileSystem.MoveFile" via VBA (Erreur 424 Objet requis)
    Bonjour à tous,
    Je souhaite tout simplement déplacer un fichier pdf d'un dossier vers un autre via une macro VBA / Excel.

    J'utilise le code VBA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub DEPLACER_FACTURE()
     
    My.Computer.FileSystem.MoveFile("C:\TestDir1\test.txt", "C:\TestDir2\test.txt")
     
    End sub

    C'est précisément ce code qu'il me faut je n'ai pas besoin de +, je n'ai ni besoin de renommer ni modifier le fichier, et c'est bien 1 seul fichier à chaque lancement de la macro.

    Mais quand je lance la macro un message d'erreur s'affiche : "Erreur d'exécution 424, Objet requis"

    Pouvez-vous m'aider à régler ça SVP ?

    Merci beaucoup !!

  2. #2
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 468
    Points : 2 240
    Points
    2 240
    Par défaut
    Bonjour,
    Je n'es sans doute rien compris car tu parles de VBA et tu utilises une instruction vb.net.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.MoveFile "C:\TestDir1\test.txt", "C:\TestDir2\test.txt"
     
    CreateObject("Scripting.FileSystemObject").MoveFile "C:\TestDir1\test.txt", "C:\TestDir2\test.txt"

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Logisticien
    Inscrit en
    Juin 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2024
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Merci beaucoup pour ta réponse.
    S'il n'y en a un qui n'y comprend rien c'est moi, mais j'arrive quand même à bricoler des outils sympa.
    Grace à ton code je n'ai plus ce l'erreur 424 mais j'en ai maintenant l'erreur 450 "Nombre d'arguments incorrect ou affectation de propriété incorrecte" dans la ligne de code :

    fso.MoveFile "C:\Users\Documents\Bureau\FACTURATION\FACTURE_ VRAC" & Sheets("Facturable").Range("Z1") & "," & Sheets("Facturable").Range("BZ3") & ""

    (Le nom du fichier est enregistré dans une cellule Excel (Onglet "Facturable" cellule ZI.
    Et le chemin complet du dossier de destination est enregistré dans la la cellule BZ3.)

    Encore merci pour ton aide

  4. #4
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 468
    Points : 2 240
    Points
    2 240
    Par défaut
    Le message d'erreur veux dire que tu ne donnes qu'un argument sur les deux ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     source="c:\repSource\source.txt"
    Cible="c:\repCible\Cible.txt"
    Fso.movefile source, cible 'la méthode movefile à besoin de 2 arguments la source et la cible , séparé par une virgule,pas une concaténation des deux sourc & "," & cible

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Logisticien
    Inscrit en
    Juin 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2024
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Encore merci pour ta disponibilité ..

    J'ai bien compris ta logique mais c'est la formulation du code qui ne m'est pas évidente car dans ton 1er code tu avais bien séparé d'une virgule sur même ligne source et cible.
    Comment je dois les introduire dans le code alors comme ceci ? Mais ça ne fonctionne pas non plus ..

    Sub DEPLACER_FACTURE()

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    fso.MoveFile
    source="c:\repSource\source.txt"
    Cible="c:\repCible\Cible.txt"

    CreateObject("Scripting.FileSystemObject").MoveFile

    source="c:\repSource\source.txt"
    Cible="c:\repCible\Cible.txt"

    End sub

  6. #6
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 468
    Points : 2 240
    Points
    2 240
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim source as string, cible as string,fso as object
    Sources="C:\Users\Documents\Bureau\FACTURATION\FACTURE_ VRAC" & Sheets("Facturable").Range("Z1") 
     
    Cible="C:\Users\Documents\Bureau\FACTURATION\FACTURE_ VRAC" & Sheets("Facturable").Range("BZ3") 
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Fso.movefile source, cible

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Logisticien
    Inscrit en
    Juin 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Logisticien
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2024
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je te remercie,
    J'ai essayé avec ce nouveau code et j'ai un nouveau message d'erreur sur la dernière ligne : "Erreur d'exécution '5': Argument ou appel de procédure incorrect.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fso.MoveFile source, cible

  8. #8
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 468
    Points : 2 240
    Points
    2 240
    Par défaut
    Tu fais un click droit sur source et tu sélectionnes ajouter à l'espion, même chose pour cible.

    Tu positionnés le curseur à entre sub et end sub tu appuis plusieurs fois sur la touche [F8] et regarde dans l'espion les valeurs que prennent tes variables.

    Regarde si c'est cohérent avec le chemin complet de ta source et de ta cible.

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/09/2017, 19h11
  2. Réponses: 6
    Dernier message: 08/08/2006, 09h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo