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

VBScript Discussion :

[VBS]Renommer les fichiers du répertoire courant


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [VBS]Renommer les fichiers du répertoire courant
    Bonjour,

    Débutant en VBS je cherche à renommer des fichiers dans le répertoire courant seulement si ceux-ci sont nommés d'une certaine façon et s'ils sont des fichiers Excel.

    J'ai fait le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Dim fso,path,fc,newFile
    Dim typeExt,longName,sepDate
     
    Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    ' Récupération du chemin absolu d'exécution du script
    Set path = fso.GetAbsolutePathName(".")
    Set fc = path.Files
     
    typeExt="xls"
    longName=23
    sepDate="_"
     
    ' Pour chaque fichier contenu dans le répertoire courant
    For Each f1 in fc
     
      ' On traite seulement les fichiers Excel de longueur 23 (type Jour_DRIRE_L212_02_2007.XLS)
      If Ucase(Split(f1.name, ".")(1)) = Ucase(typeExt) and Len(Split(f1.name, ".")(0)) = longName Then
        If (Len(Split(Left(Split(f1.name, ".")(0),13),sepDate)(0)) = 2 and Len(Split(Left(Split(f1.name, ".")(1),13),sepDate)(0)) = 2 and Len(Split(Left(Split(f1.name, ".")(2),13),sepDate)(0)) = 4) then
     
           ' Nouveau nom de type Jour_DRIRE_L2_2007_02_12.XLS
            Set newFile = path.Name & "\" & Split(f1.name, ".")(0) & sepDate & Split(Left(Split(f1.name, ".")(0),13),sepDate)(2) & sepDate & Split(Left(Split(f1.name, ".")(0),13),sepDate)(1) & sepDate & Split(Left(Split(f1.name, ".")(0),13),sepDate)(0) & "." & typeExt
     
            If (fso.FileExists(newFile) = true) then
                    Msgbox "Le fichier " & newFile & " existe déjà.",vbinformation,"Renommage fichiers export"
            else
                    fso.MoveFile path.Name & "\" & f1.name, newFile
            end if
        end if
      end if
     
    Next
     
    Msgbox "Le renommage des fichiers est terminé.", vbinformation, "Renommage fichiers export"
    Malheureusement il me fait une erreur (je lance le script du bureau) :
    Ligne : 5 (c'est le Set path = fso.GetAbsolutePathName("."))
    Erreur : Objet requis : 'string: "C:\Documents and Set"]'
    Code : 800A01A8

    Quelqu'un saurait-il pourquoi mon script me renvoie cette erreur ?

    Merci d'avance pour vos réponses

    JuS

  2. #2
    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
    essai de modifier ces 2 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     path = fso.GetAbsolutePathName(".")
    Set fc = fso.GetFolder(path).Files
    j'ai pas testé mais GetAbsolutePathName , renvoi une chaîne (string) pas un objet ... d'ou pas de set...

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Effectivement ça fonctionne parfaitement (enfin sans compter les autres erreurs de mon script ! )

    Merci beaucoup pour cette rapide résolution !

    JuS

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

Discussions similaires

  1. [XL-2010] Ouvrir tous les fichiers du répertoire sauf le fichier courant
    Par Kaera dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/04/2013, 15h12
  2. [XL-2003] Renommer les fichiers *.pdf d'un répertoire
    Par Tweelight dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 10/08/2011, 18h45
  3. Lister tous les fichiers du répertoire courant
    Par jeuf37 dans le forum Débuter
    Réponses: 3
    Dernier message: 28/04/2008, 20h00
  4. Renommer les fichiers d'un répertoire
    Par maxlegrand dans le forum Langage
    Réponses: 1
    Dernier message: 11/12/2007, 20h55
  5. renommer les fichiers d'un répertoire
    Par cell dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 28/09/2007, 10h45

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