Passage du format *.xls au format *.txt

  • Initiateur de la discussion Thomas
  • Date de début
T

Thomas

Guest
Je cherche à réaliser une macro qui me permettrait d'enregistrer un document Excel sous un format text, sans générer de guillemets au début et à la fin de chaque ligne cf. fichier test.txt en pièce jointe.
Merci de votre aide.

Thomas
 

Pièces jointes

  • test.zip
    1.6 KB · Affichages: 16
  • test.zip
    1.6 KB · Affichages: 17
  • test.zip
    1.6 KB · Affichages: 15
L

Lord Nelson

Guest
Salut Thomas,

Cette procédure te permettra d'enregistrer le texte tel quel :

Private Sub CommandButton1_Click()
Dim F As String, Ligne As Long, Temp As String
'Adapter le chemin
F = "D:\HC\Excel\ForumXLD\MonTexte.txt"
Open F For Output As #1
Ligne = 4
Do
Ligne = Ligne + 1
Temp = Range("D" & CStr(Ligne)).Text
If Temp = "" Then Exit Do
Print #1, Temp
Loop
Close
End Sub

A+
LN
 

Pièces jointes

  • ExportTexte.zip
    8.6 KB · Affichages: 27
T

Thomas

Guest
Re: Passage du format *.xls au format *.txt Amélioration

Salut à tous


j’aimerais améliorer la macro ci-dessus….
Mon problème est le suivant je voudrais pouvoir changer le nom de mon fichier texte avec une boite de dialogue ou l’utilisateur choisirait le nom du fichier, si ce n’est pas possible en ajoutant au moins la date du jour au nom du fichier texte afin qu’il puisse conserver un historique des fichier générés.

Merci d’avance.

Thomas

PS : à quoi correspond le #1 dans le code ? quelle type de variable est ce ? peut on le remplacer par un autre nom plus explicite ?
 
@

@+Thierry

Guest
Hello Thomas, Amiral, le Forum

Voici le code de LN modifé afin de d'obtenir une boite de dialogue, laquelle te proposera de sauver le TXT dans le même répertoire que le classeur où se trouvera le code, et te proposera aussi automatquement le nom de fichier "TheTxtBackUp-YYYY-MM-DD" avec donc la date du jour.

Sub RebuildTXT()
Dim TheLine As Integer
Dim TheText As String, ThePath As String, TheName As String
Dim TheFullPath As Variant

TheName = "TheTxtBackUp-" & Format(Date, "YYYY-MM-DD")

ThePath = ThisWorkbook.Path & "\"
TheFullPath = Application.GetSaveAsFilename(ThePath & TheName, "Fichier,*.txt")
If TheFullPath = False Then Exit Sub

Open TheFullPath For Output As #1
TheLine = 4
Do
TheLine = TheLine + 1
TheText = Range("D" & CStr(TheLine)).Text
If TheText = "" Then Exit Do
Print #1, TheText
Loop
Close
End Sub



Pour ta question sur le #1, c'est le FileNumber, un numéro indispensable qui peut se situer entre 1 et 511 pour ouvrir un fichier (de 1 à 255 pour des fichiers non-accessible par d'autres application et de 256 à 511 pour les fichiers accessible depuis d'autres applications. On peut aussi utiliser FreeFile pour obtenir un numéro disponible dans le cas d'un travail simultanée sur plusieurs fichiers... (Voir Aide VBA à "Open Statement")

Dans ton cas c'est une utilisation simple, inutile de changer quoique ce soit dans les FileNumbers.

Bon Appétit
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 369
Messages
2 087 673
Membres
103 634
dernier inscrit
mariobroz