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 :

Modification du nom du fichier [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut Modification du nom du fichier
    Bonsoir a tous

    je ne sais pas si je poste au bonne endroit

    voila j'ai un dossier avec 29 fichiers excel. Ces fichiers portent tous à la fin "09"
    (exemple caisse09, banque09, etc... pour l'année 2009)

    et plutot que de renommer à la main c'est 29 fichiers en 10 à la place de 09, je voudrais savoir s'il est possible par un code de les renomer en une fois

    merci pour votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Par défaut
    Bonsoir!

    Je viens juste de poster un code pour un cas similaire. Va voir là et adapte le code au nom de fichier que tu veux donner.

    http://www.developpez.net/forums/d85...mmer-fichiers/

    Bonne soirée

  3. #3
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    merci de m'aider

    mais je n'arrive pas a l'adapter ne comprenant pas le processus
    voila ce que je fait, mais je suis complètement out
    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
     
    Private Sub renommer()
     
        Dim nom As String, lettre As String
        Dim fs, dossier, fichiers, f
        Dim j As Integer
     
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set dossier = fs.getfolder(Range("A1"))
        Set fichiers = dossier.Files
     
        For Each f In fichiers
            nom = "10"
            For j = 1 To Len(f.Name)
                lettre = Mid(f.Name, j, 1)
                If lettre <> "09" Then
                    nom = lettre & nom
                End If
            Next j
            f.Name = nom
        Next f
     
    End Sub

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub renommer()
     
        Dim nom As String
        Dim fs, dossier, fichiers, f
     
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set dossier = fs.getfolder("C:\Docs")
        Set fichiers = dossier.Files
     
        For Each f In fichiers
           nom=left(f.name,instrrv(f.name,".")-2) &"10" &mid(f.name,instrrv(f.name,".")
            f.Name = nom
        Next f  
    End Sub

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour à tous,

    une autre façon de faire :

    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
     
    Sub Renommer_annee_Forum()
    Dim Dossier As String, NewFic As String, Fich As String
    Dossier = "x:\xxx\yyy\zzz\" 'on renseigne le chemin
    If Right(Dossier, 1) <> "\" Then Dossier = Dossier & "\" ' on ajoute si besoin le slash en fin de chemin
    ChDrive Dossier: ChDir Dossier ' on précise le chemin sur lequel on va appliquer la commande dir
     
    Fich = Dir("*09*") ' on liste les fichiers qui contiennent 9
    While Fich <> "" ' Tant qu'on trouve un fichier qui correspond on boucle
        NewFic = Replace(Fich, "09", "10") ' on remplace dans la variable les 09 contenus dans les nos du fichier par 10
        Name Dossier & Fich As Dossier & NewFic ' cette commande name permet de renommer le fichier
        Fich = Dir() ' on continue de lister les fichiers (prend toujours le critère du premier dir
    Wend ' fin de la boucle
     
    End Sub

    Edit : En passant par une fonction :
    - L'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub Test_rename()
    MsgBox " J'ai renommé " & Renommer("D:\xxx", "10", "9") & " Fichier(s) en remplacant 09 par 10 !", vbInformation + vbOKOnly + vbMsgBoxRight, "Renommer des fichiers"
    End Sub
    - La fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function Renommer(ByVal Dossier As String, ByVal oldS As String, newS As String) As Long
    Dim NewFic As String, Fich As String
    If Right(Dossier, 1) <> "\" Then Dossier = Dossier & "\"
    ChDrive Dossier: ChDir Dossier
     
    Fich = Dir("*" & oldS & "*")
    While Fich <> ""
        NewFic = Replace(Fich, oldS, newS)
        Name Dossier & Fich As Dossier & NewFic
        Renommer = Renommer + 1
        Fich = Dir()
    Wend
    End Function

  6. #6
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    merci
    j'attaque les test

    mercatog,
    l'instruction instrrv pose un souci

    erreur de compilation
    sub ou fonction mal définie


    aalex_38

    j'ai adapter ton code, ça fonctionne du tonnere


    par contre, je n'ai pas l'habitude de ce type de commande, et je suis vraiment perdus sur la comprehension

    merci beaucoup

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

Discussions similaires

  1. Modification du nom de fichier
    Par sonia599 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/06/2014, 09h45
  2. [Batch] ajouter la date de dernière modification au nom du fichier
    Par Knoizell dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 25/05/2012, 15h13
  3. modification de nom de fichier
    Par oliv27400 dans le forum MATLAB
    Réponses: 4
    Dernier message: 31/05/2010, 21h07
  4. Modification nom de fichier
    Par rookie_shell dans le forum Linux
    Réponses: 2
    Dernier message: 25/05/2009, 16h11
  5. Modification nom de fichier dans macro
    Par gueyou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/07/2008, 15h48

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