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

  1. #1
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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 habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Points : 127
    Points
    127
    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
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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 habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Points : 127
    Points
    127
    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
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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 sénior


    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
    Points : 20 040
    Points
    20 040
    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

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,
    FileCopy source, destination

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Points : 127
    Points
    127
    Par défaut
    comme t'essaies de copier dans le dossier admin, t'as peut etre pas l'autorisation pour, ça te mets un message d'erreur avec "permission refusée" ? si oui ça doit etre ça ton problème si non dis ya quoi dans ton message d'erreur

  9. #9
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    Par défaut
    Merci à vous 2 !

    Minise, le tout premier code que tu m'avais donné fonctionne correctement, c'est une erreur de ma part, le nom du dossier est incorrecte:

    "Nouveau dossier(2)"

    "Nouveau dossier (2)"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    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

    Merci Bibil pour ton astuce qui corrige mon bout de code, il fallait bien évidement que je donne un nom au fichier, je pensait qu'il le déplacerais directement sans problème.


    Merci

    Cordialement,

+ 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