Comment modifier le nom d'un fichier sur disque ?
Résolu
iBenny
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour à tous,
je cherche à modifier le nom (l'extension) d'un fichier spécifique [chemin]Fichier.ext et n'y parvient pas. Que devrais-je faire ?
Ayant identifié dans mon code le fichier à renommer : [chemin]Fichier.ext stoké dans la variable image, j'ai essayé d'utiliser :
1- la variable string image
2- d'utiliser CreateObject("Scripting.FileSystemObject") comme suit :
sans succès. J'ai essayé aussi :
sans succès non plus !
Des idées qq'un ?
Merci à l'avance pour vos lumières
iBenny
je cherche à modifier le nom (l'extension) d'un fichier spécifique [chemin]Fichier.ext et n'y parvient pas. Que devrais-je faire ?
Ayant identifié dans mon code le fichier à renommer : [chemin]Fichier.ext stoké dans la variable image, j'ai essayé d'utiliser :
1- la variable string image
image = [chemin]Fichier.ext
2- d'utiliser CreateObject("Scripting.FileSystemObject") comme suit :
Set jpegs = CreateObject("Scripting.FileSystemObject") Set jpeg = jpegs.GetFile(image) jpeg.Name = nouveau nom
sans succès. J'ai essayé aussi :
Set jpegsss = CreateObject("Scripting.FileSystemObject") Set jpegss = jpegsss.GetFile([chemin]) Set jpegs = jpegss.Files For Each jpeg In jpegs If Right(jpeg.Name, 4) = "jpeg" Then jpeg.Name = Left(image, Len(image) - 4) + "jpg" Exit For End If Next
sans succès non plus !
Des idées qq'un ?
Merci à l'avance pour vos lumières
iBenny
A voir également:
- Comment modifier le nom d'un fichier sur disque ?
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Cloner disque dur - Guide
- Modifier dns - Guide
2 réponses
bonjour,
"sans succès", ce n'est pas très factuel.
cela coince où? tu ne donnes pas le code exact que tu utilises.
je suggère de déclarer explicitement tes variables, cela devrait t'aider à découvrir le soucis.
en ce qui concerne ton premier essai, que contient la variable
en ce qui concerne le second essai, comment réussis-tu à faire
deux exemples qui fonctionnent:
"sans succès", ce n'est pas très factuel.
cela coince où? tu ne donnes pas le code exact que tu utilises.
je suggère de déclarer explicitement tes variables, cela devrait t'aider à découvrir le soucis.
en ce qui concerne ton premier essai, que contient la variable
image?
en ce qui concerne le second essai, comment réussis-tu à faire
getfilepour ensuite traiter le résultat comme si c'était un dossier?
deux exemples qui fonctionnent:
Private Sub rn() Dim fso As New Scripting.filesystemobject, dossier As Folder, fichier As File Set dossier = fso.GetFolder(ThisWorkbook.Path) For Each fichier In dossier.Files If Right(fichier.Name, 4) = "jpyg" Then fichier.Name = Left(fichier.Name, Len(fichier.Name) - 4) + "pyg" Exit For End If Next fichier End Sub Private Sub rn2() Dim fso As New Scripting.filesystemobject, fichier As File Set fichier = fso.GetFile(ThisWorkbook.Path + "\testyg.pyg") fichier.Name = "testyg.pygpyg" End Sub
Bonjour,
tout simplement avec la fonction Replace:
https://www.excel-pratique.com/fr/astuces_vba/replace
tout simplement avec la fonction Replace:
https://www.excel-pratique.com/fr/astuces_vba/replace
1- "Sans succès" veux dire que le nom du fichier sur disque n'a pas changé !
2- toutes les variables que j'ai utilisées ont bien sûr été déclarées auparavant et j'ai Option explicite d'indiqué dans la section des variables globales;
3- Dim image as String
image = [chemin] nom du fichier
[chemin]: chaîne de caractère indiquant le chemin complet du fichier à modifier
nom du fichier: chaîne de caractères indiquant le nom du fichier à modifier
[chemin]nom du fichier: chaîne de caractères indiquant le chemin complet suivi du nom du fichier à traiter.
ex:
image = c:/users/usager/documents/fichier.jpeg
Si c'est pas encore clair, n'hésite pas à poser une autre question.
Concernant le deuxième essai,
[chemin]: chaîne de caractère indiquant le chemin complet du fichier à modifier
jpegsss.GetFile([chemin]) => jpegsss.GetFile(c:/user/documents/) par ex... Si c'est pas encore clair, n'hésite pas à demander des précisions...
Je vais maintenant étudier ta suggestion de code...
Merci beaucoup
iBenny
j'aime bien nr2 ! Je teste ça...
le premier Dim dans nr2 renvoi :
---------------------------
Microsoft Visual Basic
---------------------------
Erreur de compilation:
Type défini par l'utilisateur non défini
---------------------------
OK Aide
---------------------------
On est dans VBA de MS Word 2003 ici...