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

Macros et VBA Excel Discussion :

Copie d'un fichier / déplacement d'un fichier [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut Copie d'un fichier / déplacement d'un fichier
    Bonjour à tous !

    Après plusieurs heures de recherche sur internet, je ne trouve pas le blocage de ma macro. Le but est simple, J'ai un fichier "source" situé sur un serveur que je dois Copier et déplacer sur le "Disque Local" pour faire la manipulation.

    Pour le moment, j'ai ces codes là.

    Le premier est pour faire une copie du fichier dans le même dossier. Elle fonctionne très bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Fichier1()
        Dim GestionFichier As Object
        Set GestionFichier = CreateObject("Scripting.FileSystemObject")
        GestionFichier.CopyFile "C:\Users\RBER\Desktop\Microsoft Office\Nouveau dossier\Classeur1.xlsx", "C:\Users\RBER\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx"
        Set GestionFichier = Nothing
     
        Application.Run ("DeplaceFichier")
    End Sub
    Le deuxième doit déplacer le fichier d'un dossier à un autre, mais j'ai une erreur sur ma deuxième ligne: Il n'aime pas la déclaration de la variable "GestionFichier"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Sub DeplaceFichier()
        Dim GestionFichier As New Scripting.FileSystemObject
        ' Celle-ci fonctionne :
        GestionFichier.MoveFile "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier(2)"
        Set GestionFichier = Nothing
    End Sub

    Si vous avez déjà eu cette erreur, je suis preneur de réponse, car je n'ai pas trouvé sur le forum.

    Cordialement,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    tu peux copier un fichier directement dans un répertoire différent, c'est ce que tu mets après la virgule du Copyfile. Si je comprends bien ton exemple ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Fichier1()
        Dim GestionFichier As Object
        Set GestionFichier = CreateObject("Scripting.FileSystemObject")
        GestionFichier.CopyFile "C:\Users\RBER\Desktop\Microsoft Office\Nouveau dossier\Classeur1.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier(2)\Classeur2.xlsx"
     
        Set GestionFichier = Nothing
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Vraiment? Il me semble pourtant avoir lu qu'il n'était pas possible de faire cela justement. J'essaye et je viens te redire. Merci en tout cas.

    EDIT: Il me met en erreur la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GestionFichier.CopyFile "C:\Users\RBER\Desktop\Microsoft Office\Nouveau dossier\Classeur1.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier(2)\Classeur2.xlsx"

  4. #4
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    au pire si cette ligne fonctionne comme tu l'écris dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        GestionFichier.MoveFile "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier(2)"
    tu la mets en dessous du copyfile, ça te donne un truc comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Fichier1()
        Dim GestionFichier As Object
        Set GestionFichier = CreateObject("Scripting.FileSystemObject")
        GestionFichier.CopyFile "C:\Users\RBER\Desktop\Microsoft Office\Nouveau dossier\Classeur1.xlsx", "C:\Users\RBER\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx"
       GestionFichier.MoveFile "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier(2)"
        Set GestionFichier = Nothing
     
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Je récapitule, car mon code de "Déplacement" ne fonctionne pas:

    Ce qui fonctionne pour le moment, c'est la copie du fichier dans un même dossier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Fichier1()
        Dim GestionFichier As Object
        Set GestionFichier = CreateObject("Scripting.FileSystemObject")
        GestionFichier.CopyFile "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier\Classeur1.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx"
        Set GestionFichier = Nothing
    End Sub

    Ce qui ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub DeplaceFichier()
        Dim GestionFichier As New Scripting.FileSystemObject
        ' déplacement du fichier:
        GestionFichier.MoveFile "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier(2)"
        Set GestionFichier = Nothing
    End Sub
    L'erreur que j'avais dans le deuxième code correspondait à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Dim GestionFichier As New Scripting.FileSystemObject   ' Il n'aime pas cette déclaration
    J'ai donc modifié par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim GestionFichier As Object
        Set GestionFichier = CreateObject("Scripting.FileSystemObject")

    Ce qui revient au même. Maintenant, il me mets l'erreur sur: (Chemin d'acces introuvable) Alors qu'il est bien créé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        GestionFichier.MoveFile "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier\Classeur2.xlsx", "C:\Users\ADMIN\Desktop\Microsoft Office\Nouveau dossier(2)"
    Comme si le code n'arrivait pas a lire la ligne vu qu'elle désigne deux dossiers différents.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    j'ai relu que la dernière ligne de code ... le deuxième argument de MoveFile et le nom complet du fichier et pas seulement le répertoire destination ...

    http://vb.developpez.com/faq/vbs?pag...mer-un-fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/11/2006, 00h29
  2. Copie ou déplacement d'un fichier
    Par Tchaill39 dans le forum Delphi
    Réponses: 4
    Dernier message: 30/10/2006, 14h36
  3. Réponses: 4
    Dernier message: 19/05/2006, 17h06
  4. Réponses: 12
    Dernier message: 07/12/2005, 18h42
  5. Réponses: 7
    Dernier message: 28/10/2005, 10h14

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