Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/12/2011, 08h58   #1
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Par défaut Modifier l'extension d'un fichier

Bonjour,

J'ai un dossier contenant un fichier .txt. J'ai crée une macro qui modifie l'extension d'un fichier connu :

Code :
1
2
3
4
5
6
7
Sub RenommerFichier()
Dim FSO As New Scripting.FileSystemObject
Dim DossierSource As Scripting.Folder, SousDossier As Scripting.Folder
Set DossierSource = FSO.GetFolder("C:\Users\MyName\Desktop\MonDossier")
Name "C:\Users\MyName\Desktop\MonDossier\MonFichier.txt" As "C:\Users\MyName\Desktop\MonDossier\MonFichier.htm"
' (Renommage du dossier .txt en .htm)
End Sub
J'aimerai pouvoir effectuer cette opération sur le fichier sans avoir à en préciser le nom ("MonFichier") dans la macro.

Auriez-vous une méthode simple à me proposer?

Merci d'avance.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 10h02   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
bonjour,

sans FSO :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub RenommeTxt()
Dim stPath As String
Dim stFic As String
Dim NouvNom As String
stPath = "C:\Users\MyName\Desktop\MonDossier\" 'attention terminer par \
 
stFic = Dir(stPath & "*.txt")
'Je considére qu'il n'y as qu'un seul fichier .txt sous le répertoire
' et lon renomme le premier fichier trouvé
 
If stFic <> "" Then
    NouvNom = Replace(stFic, ".txt", ".htm")
    Name stPath & stFic As stPath & NouvNom
Else
 MsgBox "pas de fichiers trouvé ", vbCritical
End If
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 10h51   #3
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Merci Bbil,

Ce que je voulais faire, c'était renommer tous les fichiers .txt se trouvant dans le dossier. Grâce à ta réponse, j'ai trouvé le code qu'il me fallait :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub RenommerFichiers()
Dim FSO As New Scripting.FileSystemObject
Dim DossierSource As Scripting.Folder, SousDossier As Scripting.Folder
Dim fichier As Scripting.File
Dim stPath As String
Dim stFic As String
Dim NouvNom As String
Set DossierSource = FSO.GetFolder("C:\Users\MyName\Desktop\MonDossier")
For Each fichier In DossierSource.Files
stPath = "C:\Users\MyName\Desktop\MonDossier\" 'attention terminer par \
stFic = Dir(stPath & "*.txt")
If stFic <> "" Then
    NouvNom = Replace(stFic, ".txt", ".htm")
    Name stPath & stFic As stPath & NouvNom
Else
 MsgBox "pas de fichiers trouvé ", vbCritical
End If
Next
End Sub
Merci beaucoup.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 10h58   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
salut,


Citation:
Envoyé par Arsene12
Ce que je voulais faire, c'était renommer tous les fichiers .txt se trouvant dans le dossier. Grâce à ta réponse, j'ai trouvé le code qu'il me fallait :
cela c'est dans ton premier message qu'il fallait le dire ...


il faut te décider soit tu utilise FSO soit DIR pas un mélange indigeste...

Code :
1
2
3
4
5
6
7
stFic = Dir(stPath & "*.txt")
 
 While stFic <> "" 
    NouvNom = Replace(stFic, ".txt", ".htm")
    Name stPath & stFic As stPath & NouvNom
   stFic = Dir
Wend
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2011, 12h42   #5
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Merci. Le code est beaucoup plus simple que ce que je croyais. J'avais pas tout précisé car j'essaye d'éviter de demander plusieurs choses à la fois.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h00.


 
 
 
 
Partenaires

Hébergement Web