VBA excel .csv en .txt
Résolu
aurelie76
Messages postés
88
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
7 réponses
Bonsoir,
tu l'ouvres dans excel, tu insères une colonne en A, tu l'enregistres en csv puis tu le renommes en .txt
tu l'ouvres dans excel, tu insères une colonne en A, tu l'enregistres en csv puis tu le renommes en .txt
Bonjour,
Si j'ai bien compris, tu veux un fichier .txt dont lignes sont au format .csv - point virgule, mais qui commencent par une colonne vide (c-à-d par un ;).
Voici une macro un peu brute mais qui fonctionne.
Copie la dans un fichier vierge que tu ouvre en même temps que ton fichier xls à convertir (remplace "MonClasseur.xls" par le nom de ton fichier à convertir).
Tu devras ensuite supprimer manuellement le fichier .cvs devenue inutile, situé dans le même répertoire que ton fichier.xls initial et ton fichier.txt
Cordialement
Patrice
Si j'ai bien compris, tu veux un fichier .txt dont lignes sont au format .csv - point virgule, mais qui commencent par une colonne vide (c-à-d par un ;).
Voici une macro un peu brute mais qui fonctionne.
Copie la dans un fichier vierge que tu ouvre en même temps que ton fichier xls à convertir (remplace "MonClasseur.xls" par le nom de ton fichier à convertir).
Sub test() Dim Adr As String Dim Chemin As String Dim NomFichier As String Dim NomFichierCsv As String Dim NomFichierTxt As String NomFichier = "MonClasseur.xls" Workbooks(NomFichier).Activate Chemin = ActiveWorkbook.Path & "\" ActiveWorkbook.Save 'par sécurité NomFichierCsv = Mid(NomFichier, 1, Len(NomFichier) - 3) & "csv" NomFichierTxt = Mid(NomFichier, 1, Len(NomFichier) - 3) & "txt" Adr = ActiveSheet.Rows(1).Resize(, ActiveSheet.UsedRange.Columns.Count + 1).Address 'Inserer une ligne et une colonne vierges, et des titres bidons ActiveSheet.Rows(1).Insert ActiveSheet.Columns(1).Insert ActiveSheet.Range(Adr).Formula = "X" 'Enregistrer au format CSV point-virgule et fermer ActiveWorkbook.SaveAs Filename:=Chemin & NomFichierCsv, FileFormat:=xlCSV, CreateBackup:=False, Local:=True Workbooks(NomFichierCsv).Saved = True Workbooks(NomFichierCsv).Close 'Ouvrir (au format text) Workbooks.Open Filename:=Chemin & NomFichierCsv 'Supprimer le 1° ligne bidon ActiveSheet.Rows(1).Delete 'Enregistrer au format text et fermer ActiveWorkbook.SaveAs Filename:=Chemin & NomFichierTxt, FileFormat:=xlCurrentPlatformText, CreateBackup:=False ActiveWorkbook.Saved = True ActiveWorkbook.Close 'Ré-ouvrir le fichier xls initial Workbooks.Open Filename:=Chemin & NomFichier, UpdateLinks:=xlUpdateLinksAlways End Sub
Tu devras ensuite supprimer manuellement le fichier .cvs devenue inutile, situé dans le même répertoire que ton fichier.xls initial et ton fichier.txt
Cordialement
Patrice
Bonjour tou(te)s,
Tu pourrais au moins répondre aux messages que tu a eu sur ton poste précédant et qui concerne la même question.
Une solution parmi d'autre sur ce topic
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Tu pourrais au moins répondre aux messages que tu a eu sur ton poste précédant et qui concerne la même question.
Une solution parmi d'autre sur ce topic
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonsoir,
désolé pour ceux et celles qui m'ont répondu, je reviens de déplacement professionnel juste il y a qqes minutes, je regarde vos propos et je reviens vous dire ce qu'il en ai mais dores et déjà je vous remercie tous(tes). bisous à tout le monde pour votre aide,
cdlt,
aurelie
désolé pour ceux et celles qui m'ont répondu, je reviens de déplacement professionnel juste il y a qqes minutes, je regarde vos propos et je reviens vous dire ce qu'il en ai mais dores et déjà je vous remercie tous(tes). bisous à tout le monde pour votre aide,
cdlt,
aurelie