Exporter certaines colonnes d'une feuille sur un fichier .txt

m@tix

XLDnaute Occasionnel
Bonjour,

Comme le titre du topic le stipule, je cherche à enregistrer les colonnes A à J d'une feuille sur un fichier texte.
Pour l'instant, j'ai uniquement trouvé l'instruction suivante permettant de sauvegarder la feuille en question dans sa totalité :

Code:
ActiveSheet.SaveAs Filename:="C:\Users\***\test.txt", FileFormat:=xlUnicodeText, CreateBackup:=False
Comment faire pour obtenir ce que je souhaite ?

Merci d'avance.
 

Caillou

XLDnaute Impliqué
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Bonjour,

Tu copie/colle les colonnes A à J dans un nouveau classeur
Code:
Columns("A:J").Copy
Workbooks.Add
ActiveSheet.Paste
Et ensuite tu enregistre ce nouveau classeur en texte (avec ta ligne de code)

Caillou
 

m@tix

XLDnaute Occasionnel
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Merci pour ta réponse Caillou !

En faisant cela, ne vais-je pas avoir, d'une part mon fichier .txt, et aussi le classeur au formal excel ? Je souhaiterais ne conserver que le fichier .tx.

Bonjour,

Tu copie/colle les colonnes A à J dans un nouveau classeur
Code:
Columns("A:J").Copy
Workbooks.Add
ActiveSheet.Paste
Et ensuite tu enregistre ce nouveau classeur en texte (avec ta ligne de code)

Caillou
 

PrinceCorwin

XLDnaute Occasionnel
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Bonjour le Fil,

Fais :
1- un Copier/coller des colonnes concernées sur une nouvelle feuille de ton classeur,
2- sauvegarde en fichier TXT,
3- supprime l'onglet nouvellement créer,
4- sauvegarde de ton ficheir Excel.

Bonne journée
 

Caillou

XLDnaute Impliqué
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

M@tix a bien répondu,
Si tu souhaites un seul classeur, au lieu de copier les colonnes dans un nouveau classeur, tu les copies dans une nouvelle feuille.
En vba, ça doit donner :
Code:
Columns("A:J").Copy
Worksheets.Add
ActiveSheet.Paste
Caillou
 

job75

XLDnaute Barbatruc
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Bonjour à tous,

Noter qu'il n'y a pas besoin d'ajouter une feuille.

Cette macro transforme la feuille active du fichier actif en fichier .txt :

Code:
Sub FichierText()
Dim fichier$
fichier = "C:\Users\***\test.txt" 'adapter le chemin
'fichier = ThisWorkbook.Path & "\test.txt" 'plus facile à tester...
ActiveWorkbook.SaveAs fichier, xlUnicodeText
ActiveSheet.[K:K].Resize(, ActiveSheet.Columns.Count - 10).Delete 'supprime les colonnes
ActiveWorkbook.Save 'enregistre la modification
Application.DisplayAlerts = False 'évite l'invite lors de la fermeture
If Workbooks.Count > 1 Then ActiveWorkbook.Close Else Application.Quit
End Sub
La macro peut être n'importe où.

A+
 

m@tix

XLDnaute Occasionnel
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Bonjour job75,

Merci pour ta solution, qui fonctionne parfaitement également. :)
Une remarque cependant, concernant la taille du fichier généré : il fait environ 3,5Mo.

De mon côté, en appliquant cette ligne de code, j'obtiens le même fichier .txt, mais moitié moins volumineux ! Pourquoi donc ?? Le format ?

Code:
ActiveWorkbook.SaveAs Filename:="C:\***.txt", FileFormat:=xlText, CreateBackup:=False
 

Efgé

XLDnaute Barbatruc
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Bonjour m@tix Bonjour Caillou, PrinceCorwin Bonjour job75 :)

Une proposition , mais sans exemple, je pars du principe que la dernière ligne est a récupérer en colonne A :rolleyes:
J'ai piqué le chemin de Job :D
VB:
Sub Test()
Dim i&, TabData As Variant
With Sheets("Feuil1")
    TabData = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(3)(1, 10))
End With
Open "C:\Users\***\test.txt" For Output As #1 'adapter le chemin
    For i = 1 To UBound(TabData, 1)
        Print #1, Join(Application.Index(TabData, i), vbTab)
    Next i
Close #1
End Sub

Cordialement
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Bonsoir à tous,

Une remarque cependant, concernant la taille du fichier généré : il fait environ 3,5Mo.

De mon côté, en appliquant cette ligne de code, j'obtiens le même fichier .txt, mais moitié moins volumineux ! Pourquoi donc ??

Ce n'est pas moi qui ai choisi le format Unicode mais vous m@tix, voir post #1...

Généralement en Unicode, un caractères prend 2 octets. Autrement dit, le moindre texte prend deux fois plus de place qu'en ASCII. C'est du gaspillage.

Mais ça permet de coder beaucoup beaucoup plus de caractères...

A+
 

m@tix

XLDnaute Occasionnel
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Merci à tous ! Vos solutions me conviennent parfaitement ! :D

Deux dernières choses cependant :

Mais ça permet de coder beaucoup beaucoup plus de caractères...
Pouvez-vous préciser svp ? Je ne saisis pas trop..

EDIT : autant pour moi, la solution de Efgé semble le faire ! ;)
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Exporter certaines colonnes d'une feuille sur un fichier .txt

Bonjour m@tix, le fil,

Juste pour préciser.

1 octet soit 8 bits donne 2^8 = 256 codes différents.

Utilisés pour le codage des 127 caractères ASCII (sans accents) ou des 255 caractères ANSI.

On obtient ces derniers avec la fonction Excel CAR(n).

2 octets soit 16 bits donne 2^16 = 65536 codes différents.

Utilisés pour le codage des caractères Unicode.

Voyez ce qu'on en dit sur le web.

Edit : noter que les codes des caractères Unicode s'écrivent avec des nombres hexadécimaux à 4 chiffres.

Ce qui donne bien 16^4 = 2^16 = 65536 codes différents.

A+
 
Dernière édition:

Discussions similaires

Réponses
13
Affichages
1 K

Statistiques des forums

Discussions
312 502
Messages
2 089 049
Membres
104 012
dernier inscrit
baffyt2