Changer l'extension d'un fichier sous VBA
thunderbolt
-
Bidouilleu_R Messages postés 1209 Statut Membre -
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,
Je bloque un peu sur VBA pour changer l'extension d'un fichier. Enfait Dans un répertoire j'ai 2 dossier, l'un contenant des fichier .txt et je voudrais réenregistrement ces fichier en .xls dans le deuxième dossier. Je ne connais pas vraiment VBA alors je patoge pas mal. Si vous avez une idée me permetant de me dire dans quelle direction chercher je vous en remercie. Toute aide est la bienvenue, merci d'avance
Je bloque un peu sur VBA pour changer l'extension d'un fichier. Enfait Dans un répertoire j'ai 2 dossier, l'un contenant des fichier .txt et je voudrais réenregistrement ces fichier en .xls dans le deuxième dossier. Je ne connais pas vraiment VBA alors je patoge pas mal. Si vous avez une idée me permetant de me dire dans quelle direction chercher je vous en remercie. Toute aide est la bienvenue, merci d'avance
A voir également:
- Changer l'extension d'un fichier sous VBA
- Changer dns - Guide
- Changer extension fichier - Guide
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
8 réponses
changer l'extension d'un fichier sous VBA :
il faut utiliser faire : name fichier.txt fichier.xls
mais dans ton cas j'ai des doutes...
Je ne connais pas vraiment VBA alors je patoge pas mal.
Explique ce que tu veux faire ce sera plus simple.
j'ai l'impression que la methode enregistrer Sous... serait plus proche de ton besoin.
A+
il faut utiliser faire : name fichier.txt fichier.xls
mais dans ton cas j'ai des doutes...
Je ne connais pas vraiment VBA alors je patoge pas mal.
Explique ce que tu veux faire ce sera plus simple.
j'ai l'impression que la methode enregistrer Sous... serait plus proche de ton besoin.
A+
Merci déjà pour ta réponse si rapide, je vais essayer d'expliquer un peu mieux ce que j'essai de faire.
Enfaite, j'ai plusieurs dossier qui on comme nom des dates mais ces dossiers ont toujours la même arborescence. dans chacun de ces dossier j'ai deux sous répertoires: Données brutes et Données Excel. dans le dossier données brutes j'ai un ensemble de fichier text et ce que je voudrais c'est ré enregistrer ces fichiers au format .xls dans le deuxième dossier appelée Données Excel
Enfaite, j'ai plusieurs dossier qui on comme nom des dates mais ces dossiers ont toujours la même arborescence. dans chacun de ces dossier j'ai deux sous répertoires: Données brutes et Données Excel. dans le dossier données brutes j'ai un ensemble de fichier text et ce que je voudrais c'est ré enregistrer ces fichiers au format .xls dans le deuxième dossier appelée Données Excel
donc ce qu'il te faut c'est utiliser une conversion des données TXT vers XLS puis enregistrez le fichier excel dans le bon dossier.
As-tu écris quelque chose pour la conversion des données?
Ne sachant pas comment sont ordonnées les données en texte ... difficile!
peux-tu donner un exemple sur ci-joint .fr ( pas de données confidentielles ou personnelles)
As-tu écris quelque chose pour la conversion des données?
Ne sachant pas comment sont ordonnées les données en texte ... difficile!
peux-tu donner un exemple sur ci-joint .fr ( pas de données confidentielles ou personnelles)
pour t'avancer dans ta demarche
executes ce code.
il t'ouvre la boite de dialogue "fichier ouvrir" puis tu selectionnes le fichier Texte
il l'ouvres comme si le fichier était bien formaté ( à voir)
puis il l'enregistre dans le sousdossier \Données Excel ..
le résultat est un fichier xls...
executes ce code.
il t'ouvre la boite de dialogue "fichier ouvrir" puis tu selectionnes le fichier Texte
il l'ouvres comme si le fichier était bien formaté ( à voir)
puis il l'enregistre dans le sousdossier \Données Excel ..
le résultat est un fichier xls...
Sub Convertit_en_xls()
Dim Chemin As String
Dim Fichier As String
Dim LeNom As String
Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
Workbooks.OpenText (Fichier)
While Right(Fichier, 1) <> "\"
LeNom = Right(Fichier, 1) & LeNom
Fichier = Left(Fichier, Len(Fichier) - 1)
Wend
CheminSource = Left(Fichier, Len(Fichier) - 1)
While Right(CheminSource, 1) <> "\"
CheminSource = Left(CheminSource, Len(CheminSource) - 1)
Wend
Chemin = CheminSource & "Données Excel\"
LeNom = Left(LeNom, Len(LeNom) - 3) & "xls" ' le nom avec xls
ActiveWorkbook.SaveAs Chemin & LeNom
ActiveWorkbook.Close
End Sub
hua super, merci ça l'enregistre dans le bon dossier, maintenant faut juste voir pour qu'il l'ouvre automatiquement et faire une boucle de façon a ce qu'il fasse de même pour tout les fichier texte du dossier. Pour l'ouvrir et faire la boucle je devrais réussir a m'en sortir mais au cas ou je reposerais sur ce forum par contre, quand le fichier se ré enregistre il demande de confirmer que je veux bien enregistrer les modification, il y aurait il un moyen de désactiver cette alerte?
Merci beaucoup pour ton aide précieuse.
Merci beaucoup pour ton aide précieuse.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je n'ai pas eu d'erreur mais vérifie quand même...
A+
A+
Public TabloFichier() As String
Sub Convertit_en_xls()
Dim Chemin As String
Dim SavChemin As String
Dim CheminSource As String
Dim Fichier As String
Dim LeNom As String
Dim j As Integer
Fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt")
While Right(Fichier, 1) <> "\"
LeNom = Right(Fichier, 1) & LeNom
Fichier = Left(Fichier, Len(Fichier) - 1)
Wend
CheminSource = Left(Fichier, Len(Fichier) - 1)
SavChemin = CheminSource & "\"
creerListeFichier (Fichier) ' un tableau qui contient tous les noms de fichier TXT
While Right(CheminSource, 1) <> "\"
CheminSource = Left(CheminSource, Len(CheminSource) - 1)
Wend
Chemin = CheminSource & "Données Excel\" ' le dossier d'enregistrement
' on boucle sur le tableau
For j = 0 To UBound(TabloFichier)
LeNom = TabloFichier(j)
Fichier = SavChemin & LeNom
Workbooks.OpenText (Fichier)
LeNom = Left(LeNom, Len(LeNom) - 3) & "xls" ' le nom avec xls
ActiveWorkbook.SaveAs Chemin & LeNom
ActiveWorkbook.Close
Next j
End Sub
Public Sub creerListeFichier(specdossier)
Dim fso, oDossier, oFichier, sFichier
Dim I As Integer
Dim s As String
Set fso = CreateObject("Scripting.FileSystemObject")
Set oDossier = fso.getfolder(specdossier)
Set oFichier = oDossier.Files
For Each sFichier In oFichier
If Right(sFichier.Name, 3) <> "txt" Then
' ce n'est pas un fichier txt
Else
ReDim Preserve TabloFichier(I)
TabloFichier(I) = sFichier.Name
I = I + 1
End If
Next
End Sub
Merci pour se nouveau code, je ne l'ai pas encore essayer, je te dis tout de suite s'il marche, j'étais en train de modifier de trois bricole sur l'ancien car enfaite, le fichier s'ouvrait bien mais j'avais un message d'erreur sur l'extension et j'ai aussi supprimer les message d'alerte ça donnais ça (je renvoie que la fin, le début est le même)
ActiveWorkbook.SaveAs Filename:=Chemin & LeNom, FileFormat:=xlNormal
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Encore un grand merci pour ton aide,
ActiveWorkbook.SaveAs Filename:=Chemin & LeNom, FileFormat:=xlNormal
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Encore un grand merci pour ton aide,