Changer l'extension d'un fichier sous VBA
Fermé
thunderbolt
-
5 juil. 2010 à 10:59
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 5 juil. 2010 à 15:19
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 5 juil. 2010 à 15:19
A voir également:
- Changer l'extension d'un fichier sous VBA
- Changer dns - Guide
- Changer extension fichier - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
8 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 juil. 2010 à 11:05
5 juil. 2010 à 11:05
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
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 juil. 2010 à 11:44
5 juil. 2010 à 11:44
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)
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 juil. 2010 à 12:58
5 juil. 2010 à 12:58
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.
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 juil. 2010 à 14:06
5 juil. 2010 à 14:06
le principe est le même mais j'aatendais que tu me dises comment était ton fichier texte ;-)
je te rajoute une boucle....
je te rajoute une boucle....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 juil. 2010 à 14:34
5 juil. 2010 à 14:34
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,
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 juil. 2010 à 14:56
5 juil. 2010 à 14:56
modifie l'autre code en conséquence
avec...
ActiveWorkbook.SaveAs Filename:=Chemin & LeNom, FileFormat:=xlNormal
avec...
ActiveWorkbook.SaveAs Filename:=Chemin & LeNom, FileFormat:=xlNormal
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
5 juil. 2010 à 15:19
5 juil. 2010 à 15:19
penses à mettre résolu s'il te plait