changer les 2 premiers caracteres du nom des fichiers dans un repertoire ?

alucard_xs

XLDnaute Occasionnel
Bonsoir,

Savez vous comment changer les deux premiers caractères du nom de tout les fichiers contenus dans un repertoire ?

Par exemple, dans le répertoire d:\toto\ j'ai des fichiers du genre 111.xls, 222.xls, 333.xls et j'aimerai bien les renommer en po1.xls ... po2.xls ... par exemple.

Merci si vous savez ;) et si vous ne savez pas ben merci qd même de m'avoir lu ;)

Bonne soirée
 

Pierrot93

XLDnaute Barbatruc
Re : changer les 2 premiers caracteres du nom des fichiers dans un repertoire ?

Bonsoir Elucard

regarde le code ci dessous, attention renomme tous les fichiers du répertoire courant, variable "monrepertoire" à adapter :

Code:
Sub TEST()
'activer la reference Microsoft scripting Runtime
Dim fso As Scripting.FileSystemObject
Dim MonRepertoire As String, f As File
Set fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = CurDir
For Each f In fso.GetFolder(MonRepertoire).Files
    Name f.Name As "po" & Right(f.Name, Len(f.Name) - 2)
Next f
End Sub

bonne soirée
@+
 

Épaf

XLDnaute Occasionnel
Re : changer les 2 premiers caracteres du nom des fichiers dans un repertoire ?

Code:
OldName = Chemin & NomFich
NewNom = Chemin & NouveauNom
Name OldName as NewName
Bonne soirée

NB - Exemple tiré (il y a longtemps) de l'aide en ligne (F1)
 

Épaf

XLDnaute Occasionnel
Re : changer les 2 premiers caracteres du nom des fichiers dans un repertoire ?

Sans référence supplémentaire et en décomposant
Code:
Sub ListeDesFichiers()
Dim NomRep, Tabnom, LeMot, NomFich, Oldname
    NomRep = "D:\xls"
    With Excel.Application.FileSearch
        .NewSearch
        .LookIn = NomRep
        '.SearchSubFolders = True 'si tu veux les fichiers des sous-répertoires
        .Filename = "*.xls"
        If .Execute() > 0 Then
            For i = 1 To .FoundFiles.Count
                Tabnom = Split(.FoundFiles(i), "\")
                NomFich = Tabnom(UBound(Tabnom))
                LeMot = "po"
                Oldname = .FoundFiles(i)
                Name Oldname As NomRep & "\" & LeMot & i &  Right(NomFich, Len(NomFich) - 2)
            Next i
        End If
    End With
End Sub
@+
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : changer les 2 premiers caracteres du nom des fichiers dans un repertoire ?

le soucis c'est que ça me laisse les deux 1ere lettres du nom de fichier

ex: j'avais Ddlemeilleur.xls et là j'ai Dflemeilleur.xls au lieu de flemeilleur.xls (ce que je voudrais)
 

gejipe

XLDnaute Nouveau
Re : changer les 2 premiers caracteres du nom des fichiers dans un repertoire ?

Peut-être plus facile et sans danger:
- va dans le poste de travail;
- ouvre le répertoire dans lequel se trouvent les fichiers;
- marque les (soit CTRL + A si tous es fichiers doivent être modifiés ou CTRL et clic gauche sur les fichiers choisis;
- clic droit et puis clique sur RENOMMER;
- donne un nouveau nom et enter;
C'est facile, la numérotation est automatique et c'est plus rapide à faire qu'à écrire ce message.
A +
 

Épaf

XLDnaute Occasionnel
Re : changer les 2 premiers caracteres du nom des fichiers dans un repertoire ?

Bonjour alucard_xs
Ça ne correspond pas à ta demande. Nous sommes tous les deux partis d'un nom de 3 lettres.
Ce que tu sembles vouloir c'est partir de Ddlemeilleur.xls pour arriver à lemeilleur.xls. Il s'agirait donc de raccourcir le nom de deux caractères. Pour ça nous t'avons tous les deux donné la syntaxe correcte en supprimant "po" et pour ce qui me concerne, i.
Ce qui donnerait
Code:
Name Oldname As NomRep & "\" &  Right(NomFich, Len(NomFich) - 2)
Précise ta demande si ce n'est pas ça.
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35