Exporter des données excel dans un fichier TXT

Signaler
Messages postés
3
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
18 avril 2008
-
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
-
Bonjour à tous,

J'ai besoin d'exporter le contenu de feuilles Excel dans un fichier TXT. Puisque j'en ai une 20 à a faire quasi quotidiennement je me suis dis que ça pourrait être bien de faire une marco qui le fasse à ma place. Le hic c'est que je ne connais pas trop le VBA et donc je ne sais pas comment faire.
Est-ce que qlq'1 connait qlq ch qui pourrait m'aider?
Merci d'avance

Cristof

5 réponses

Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
Salut,

Quand tu ouvres l'éditeur Visual Basic dans Excel, il te permet de gérer les évènements de tes feuilles ou de ton classeur en entier. Tu peux même créer de nouveaux formulaires à intégrer dans ton classeur.
Tu trouveras bien un évènement qui te permetta de coder ton exportation comme en VB normal.

Cordialement,


Grégory GHEZ
Hermes Informatique
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
2
Si les noms de feuilles et des fichiers sont toujours les memes,
utilise l'enregisteur de macro (outil>macro>Nouvelle Macro)



si non, l'enregisteur de macro a de toute facon l'interet de te donner le nom des commandes a utiliser pour rediger ton programe
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
23
Essaie cette macro (elle fonctionne)

Sub Export()
Range("A1").CurrentRegion.Activate
Dim FileName As String
Dim Data
Dim r As Long, c As Integer
Dim NumRows As Long, NumCols As Integer
Dim ExpRng As Range
Set ExpRng = Application.Selection
NumRows = ExpRng.Rows.Count
NumCols = ExpRng.Columns.Count


FileName = "C:\Mes documents\fichiertexte.txt"
Open FileName For Output As #1
For r = 1 To NumRows
For c = 1 To NumCols
Data = ExpRng.Cells(r, c).Value
If IsNumeric(Data) Then Data = Val(Data)
If IsEmpty(ExpRng.Cells(r, c)) Then Data = ""
If c <> NumCols Then
Write #1, Data
Else
Write #1, Data


End If
Next c
Next r
Close #1
End Sub

jpleroisse
Messages postés
261
Date d'inscription
jeudi 13 janvier 2005
Statut
Membre
Dernière intervention
18 mai 2009
2
jpleroisse> Il
n'y aurrai pas un probleme, les 2 cotes du else sont identiques, a mon
avis tu voulais ajouter la virgule et eviter de retourner a la ligne,
non?



If c <> NumCols Then
Write #1, Data
Else
Write #1, Data



End If

J'aurrai utilise la fonction enregistrer sous - fichier TXT d'excel que l'enregisteur de macro me traduit en VBA par :



ActiveWorkbook.SaveAs FileName:= _

"C:\...\Classeur1.txt" _

, FileFormat:=xlText, CreateBackup:=False
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
23
Non , autan pour moi J'ai oublié de tapper un ; après le premier write

Write #1, Data;
Le ; signifie que le fichier enregistrera ligne après ligne

jpleroisse