Déplacé une fichier éditer avec vbscript

Bonjour,

J'essaye de faire un script pour déplace un fichier que j'ai éditer. Le soucis c'est que j'ai à chaque fois cette erreur Objet requis 'oFSO'

oFSO.MoveFile "C:\temp\test.txt", "D:\Documents\test.txt",True 

Je comprend pas pourquoi ça fonctionne pas je fait pareil qu'avec la méthode expliquer ici > http://warin.developpez.com/access/fichiers/#LI-D-3-c

Je débute en programmation et peu d'aide serait le bienvenu.

17 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Je te remercie de ta réponse. J'ai finalement réussis, mais en partis.

    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.CopyFile "C:\temp\test.txt", "D:\Documents\test.txt",True


    Mon script fonctionne sur windows XP mais quand je l'ai testé sur Windows 8 et 7 j'ai ce message d'erreur.

    Carat. : 1
    Erreur : Permission refusée
    Code : 800A0046

    Au final peut importe comment je termine mon script il plante a la dernière ligne. Si tu a une idée tu me sauve la vie, je débute dans l'entreprise et doit faire mes preuve.
    1. Bonjour,

      je viens de faire un test en W8, pas de probleme si les repertoires et fichier existent

      Maintenant, le repertoire Documents, un peu plus de details SVP
      1. Re,

        Merci d'avoir répondu aussi vite. Je pense avoir cerné le problème grâce a votre lien. Le soucis viendrai du script. Dans le script il aucune balise de début et de fin. J'ai fait un test en mettant Sub Main() au début et End Sub a la fin. Le script c'est pas exécuté mais à pas planter. Qu'est ce que on doit écrire en entête du script et comment le fermé ?
        1. Re,

          pas besoin de depart ou/et fin en Vbscript.

          Si vous mettez Sub Main() il faut la ligne de programme pour appeler ce sub sinon pas marche
          1. Je pense avoir compris mon erreur. Sur le net il donne a chaque que un parti d'un instruction du code.

            En gros une action avec le code doit s'écrire comme ceci :


            Sub Fonction

            Dim Variable

            Set Déclaration de la variable avec l'argument

            Objet.Fonction

            End Sub

            Et ça a chaque nouvelle demande d'instruction . Je me trompe ?
            1. Re,

              Je me trompe ? Oui et non, si vous ecrivez des fonctions, il faut du code pour les appeler.

              Dans le cas de votre deplacement de fichier, pas besoin de tout cela
              1. Je suis complètement perdu, je m'excuse je veux pas abuser. J'ai utiliser la méthode montré dans MSDFN et ça ne fonctionne pas mais par contre ça plante pas. Sur MSDFN il mette les SUB
                http://msdn.microsoft.com/en-us/library/2wcf3ba6%28v=vs.84%29.aspx
                Quand je mets les sub ça plante pas mais rien n'est fait ? Alors que faire ?
                1. Re,

                  je m'excuse je veux pas abuser Aucun soucis a vous faire.

                  Dans cet exemple c'est une subroutine avec passage de parametre qui devra etre appelee comme suit:

                  Call MoveAFile("C:\temp\test.txt")

                  sub MoveAFile(Drivespec)
                  Dim fso
                  Set fso = CreateObject("Scripting.FileSystemObject")
                  fso.MoveFile Drivespec, "D:\Documents\test.txt"
                  End Sub

                  Vous, votre probleme est que vous ne pouvez pas acceder a un repertoire ou a un fichier

                  Carat. : 1
                  Erreur : Permission refusée
                  Code : 800A0046
                  1. Ok, donc mon problème vient d'une sécurité de windows 8 et 7 ? Pas du srcipt ?
                    1. Bonjour,

                      Essayez en modifiant la propriete compatibilite de votre script en mettant: executer en tant qu'administrateur
                      1. Bonjour,

                        J'ai essayé hier avec xlm mais ça à pas marcher vous mettrez quoi a la place avec du vbscript ?
                        1. Re,

                          Avez-vous fait ce que j'ai ecrit Lien (#12) ce matin.

                          Vous pouvez faire un fichier .bat avec des instructions DOS ou tout autre logiciel comme excel (VBA), mais si vous avez un probleme d'acces fichier, ca ne le resoudra pas.
                          1. J'ai test en executant avec l'invite de commande en mode administrateur et idem (j'ai pas l'option dans le menu contextuel).

                            Du coup j'a cas laisser tomber, dommage, au moins c'est pas ma faute je dirait à mon tuteur que c'est pas possible.

                            Au moins j'ai pas tous perdu, j'ai appris a faire du vbscript. La migration vers seven n'a pas fini de nous faire ...
                            Merci
                            1. Re,

                              je dirait à mon tuteur que c'est pas possible. Non, pas dire ca. Il y a forcement une solution, je ne peux vous la donner car je n'ai pas vos PC sous la main, ca peut se resoudre.

                              Quand vous lancez votre script, vous etes connecte a un compte ?? Si oui, voir de ce cote (droit d'access etc....)

                              J'en reviens au repertoire Documents,
                              sous XP il est sous d:\...

                              mais sous W7 et W8: C:\Users\nomduUser\Documents
                              1. Je test le script chaque fois sur des VM fraîchement installées avec les droits admin. Une XP, ça fonctionne, 7 et 8 c'est bloqué par le système. J'ai trouvé ce logiciel [url http://www.bellamyjc.org/fr/superexec.html ] mails il ne fonctionne pas pour la parti appli même sur les VM. La parti réseau de superexec ne pose aucun soucis mais quand je démarre RunSE il mais le message d'erreur=> RunSe doit être exécuté avec un fichier .XSE en argument.

                                En plus si j'ai bien compris, il faut pré-enregistré le mot de passe ce qui est exclue avec du VB à cause des problèmes de confidentialité. Le site de l'éditeur n'ai pas très clair sur le logiciel mais sur les forums il est donné comme réponse a se genre de soucis. Je trouve qu'il est pas facile à prendre en main même pour une personne qui le bon sens de l'informatique.