Renommer des xls sans les ouvrir

  • Initiateur de la discussion Initiateur de la discussion Risleure
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Risleure

XLDnaute Occasionnel
Bonjour le Forum

Pour résumer un problème plus complexe que je traine depuis un moment.
J'ai dans un répertoire plusieurs centaines (<1000) de fichiers de données Excel issus d'une acquisition chronologique de données. Pour un traitement ultèrieur je dois préalablement renommer certains fichiers.
Grace aux fils de Forum, je sais maintenant rechercher sans les ouvrir certains fichiers dont je souhaite modifier le nom et je passe en revue tout les fichiers du répertoire par une boucle.
Le problème est que je ne sais pas enregistrer sous son nouveau nom ce fichier sans l'ouvrir préalablement alors que j'ai pu le repèrer, c'est bête!!!! 🙁

Si AncienNom = Fichier#1.xls et NouveauNom = Fichier001.xls, j'utilise la ligne
Workbooks.Open(AncienNom).SaveAs (NouveauNom).

Question subsidiaire au cas où je ne puisse pas faire autrement que d'ouvrir les fichiers, la ligne de commande
Workbooks(NouveauNom).Close que je place immédiatement après la précédente ne fonctionne pas. Je me retrouve avec 100 de fichiers ouverts et alors ça rame sévère donc si vous avez mieux 😉
Merci de votre attention
 
Re : Renommer des xls sans les ouvrir

Bonjour


Peut être voir de ce côté

FileCopy, instruction, exemple

Cet exemple utilise l'instruction FileCopy pour copier le contenu d'un fichier dans un autre fichier. Nous supposons que le fichier FICHSRC contient des données.
Dim SourceFile, DestinationFile
SourceFile = "FICHSRC" ' Définit le nom du fichier source.
DestinationFile = "FICHDEST" ' Définit le nom du fichier cible.
' Copie le fichier source dans le fichier cible.
FileCopy SourceFile, DestinationFile
 
Re : Renommer des xls sans les ouvrir

Bonjour,
salut Staple

Name aurait peut-être pu le faire?

de l'aide VBA:

Code:
Dim OldName, NewName
OldName = "ANCFICH": NewName = "NOUVFICH"    ' Définit les noms de fichiers.
Name OldName As NewName
 
Re : Renommer des xls sans les ouvrir

Bonjour Risleure,
s'il s'agit de renomer seulement les fichiers,

Personnellement j'utilise l'objet FSO

Code:
Sub RenomerFichiersDuRepertoire()
Dim stRep 'Nom du répertoire à parcourir
Dim oFSO, oFl
Dim i As Long
Dim NouveauNom as string
Set oFSO = CreateObject("Scripting.FileSystemObject")
stRep = ThisWorkbook.Path
If oFSO.FolderExists(stRep) Then
 For Each oFl In oFSO.GetFolder(stRep).Files
    If UCase(Right(oFl.Name, 3)) = "XLS" Then
        i = i + 1
        Range("A" & i) = oFl.Name
         If oFl.Name <> ThisWorkbook.Name Then
            NouveauNom="Fichier_" & i & ".xls" 
            oFl.Name =Nouveaunom
            Range("C" & i) = oFl.Name
        End If
    End If
 Next
End If
Set oFSO = Nothing
End Sub

A bientôt
 
Re : Renommer des xls sans les ouvrir

Bonjour bhbh


J'ai hésité pour le Name

à cause de

Name OldName As NewName ' Déplace et renomme le fichier.


Bonjour Hasco: j'avais aussi pensé à FSO, mais ne sachant pas
comment sera construit le nouveau nom
 
Re : Renommer des xls sans les ouvrir

Bonjour à tous,

Bien après la bataille mais comme j'ai pondu un truc, autant le mettre :
Code:
Sub changenom()

LeDossier = "C:\TonChemin"
'***Recherche des fichiers du répertoire sélectionné
ExNom = "testnom.xls"

With Application.FileSearch
    .LookIn = LeDossier
    .SearchSubFolders = False
    .Filename = ExNom
    .MatchTextExactly = True
    .FileType = msoFileTypeAllFiles
    If .Execute() > 0 Then
        NouvNom = "LeDossier" & "testnomreussi.xls"
        Name ExNom As NouvNom
    Else
        MsgBox "There were no files found."
    End If
End With
End Sub
Cordialement

Nota : il faut rajouter les définitions de variables que j'ai zappé...
Nécessite l'existence d'un fichier nommé testnom.xls

Edit :Cela revient d'ailleurs à ce qu'a indiqué bhbh....
 
Re : Renommer des xls sans les ouvrir

Merci à tous pour votre contribution.

Je regarde les soluces avec attention car de toute façon, il y a de l'enseignement comme les "FSO", je découvre !!!

pour "Name" je vais voir c'est peut être plus propre car à la soluce "FileCopy" de Staple1600 qui fonctionne bien, j'ai ajouté un Kill (AncienFichier)

Merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour