Enregistrement de plage de données excel --> fichier texte

Signaler
Messages postés
8
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 juin 2010
-
Messages postés
8
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 juin 2010
-
Bonjour,
Je suis débutant en VBA Excel, je cherche à créer une macro qui me permettrait d'enregistrer une plage de données excel sous plusieurs fichiers texte (*.txt). En effet selon des critères prédéfinis, je "sépare" ma plage de donnée Excel en plusieurs plages que je souhaite enregistrer dans des fichiers textes différents, le points sensible étant que le nombre de plages de données Excel n'est pas connu à l'avance. Par plage j'entends 3 colonnes de données et un nombre de lignes à définir.
Par exemple, on peut imaginer que mes 50 premières données de ma plage Excel sont ma plage 1, les 50 prochaines ma plage 2 ect..en un nombre indéfini de plage. Je voudrais alors stocker ma plage 1 dans un fichier sujet1.txt, ma plage 2 dans sujet2.txt ect...
En espérant avoir été suffisamment clair.
Merci d'avance
jean

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Pour ce faire, tu n'as besoin que de ces instructions :
- Ouvrir, écrire dans un fichier texte : FreeFile, Open, Print #, Close #
- Faire une boucle sur un plage : standard :
   Dim maCell As Object
   For Each maCell In Range("A1:A4012")
     ' Traitement écriture
   Next

- Jouer avec maCell.Offset pour pointer vers des cellules adjacentes à celle de la boucle

A toi de regarder dans l'aide pour trouver des exemples et des explicatifs afin de faire des essais et mettre au point

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
8
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 juin 2010

Merci,
Effectivement pour écrire des données dans un fichiers pas de problème, mais il s'agit d'ouvrir et d'écrire dans différents fichiers dans une même boucle (type Do while...loop).
Par exemple, pour illustration:
Do while "fin fichier Excel"
i=1
enregistrement plage i (du Fichier Excel) dans fichier i (*.txt)
i=i+1
Loop

Mon problème est ici de modifier le nom de mon fichier texte afin que la plage 1 (Excel) soit dans un fichier n°1.txt, la plage 2 dans un fichier n°2.txt ect...
Pourriez vous m'aider?
Merci
jean
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Donc, ton problème c'est de rendre paramétrable le nom du fichier ?
Exemple :
   Dim i As Integer
   Dim s As String
   i = 4012
   s = "Fichier " & CStr(i) & ".txt"
   ' donnera : 'Fichier 4012.txt' (sans les ' )
Suffit de donner ce nom au Open de ton fichier
Il faudra faire un Open puis un Close de chaque fichier.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
PS : Si tous les fichiers doivent être ouverts en même temps, il faudra faire un Open avec un numéro différent pour chacun d'eux, d'où l'avantage d'utiliser FreeFile
Messages postés
8
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
3 juin 2010

Merci beaucoup