macro pour transformer un fichier excel

tibofo

XLDnaute Nouveau
Bonjour à tous,

Je re-découvre EXCEL depuis qq temps. J'avais travaillé les macros il a qq années mais la reprise est difficile.

Voilà mon besoin (qui doit être simple - je pense) :
j'ai un fichier excel genre :
date - N° de compte - libellé - montant
200108 401000 facture dupont 100
200108 607000 achats 50
220108 .......

Je voudrais obtenir un txt mettant en page ces infos ainsi :

Enregistrement
200108
401000
facture dupont
100
Enregistrement
200108
607000
achats
50
Enregistrement
220108
...
...
FIN

Les mots Engregistrement et FIN seront toujours les mêmes.

J'arrive à faire la première ligne par un enregistrement de macro. Mais je n'arrive pas à le faire continuer sur les lignes suivantes tant qu'il y a des lignes.

Pourriez-vous m'aider s'il vous plait ? Merci beaucoup
Thibault
 

Dull

XLDnaute Barbatruc
Re : macro pour transformer un fichier excel

Salut tibofo et bienvenu, Said, le Forum

Très intéressé par le système "d'envoi" de Fichier Excel en Fichier Texte j'apporte ma contribution

Enregistre le fichier dans un Dossier
Ouvre le fichier
Clic sur le Bouton et
Regarde le Fichier Texte qui porte le Nom "Enregistrement Date_du_jour"

Mais ne te réjouit pas trop vite cela marche QUE POUR TON FICHIER EXEMPLE

Il faudrait faire une boucle sur les colonnes de A à La dernière et sur les lignes de 1 à la dernière.

Avis aux amateurs... Et même les Pros :D

Bonne Journée
 

Pièces jointes

  • Tibofo transformation d'un fichier Excel.zip
    11.4 KB · Affichages: 59
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : macro pour transformer un fichier excel

Bonjour

pour raccourcir le code et lui permettre d'enregistrer en dessous du premier enregistrement

Code:
Private Sub CommandButton1_Click()
Dim i As Integer
Open ThisWorkbook.Path & "\Enregistrement " & Format(Now(), "dd mmm yyyy") & ".txt" For Append Shared As #1
For i = 1 To 3
Print #1, "Enregisrement" _
& vbCrLf & Sheets("feuil1").Range("A" & i).Value & vbCrLf & Sheets("feuil1").Range("B" & i).Value & vbCrLf & _
Sheets("feuil1").Range("C" & i).Value & vbCrLf & Sheets("feuil1").Range("D" & i).Value & vbCrLf
Next
Print #1, "Fin"
Close #1
End Sub

Cdlt

RGI
 

tibofo

XLDnaute Nouveau
Re : macro pour transformer un fichier excel

Merci à vous. Les 2 marchent bien.
Reste à me rappeler pour la boucle
(tant qu'il y a des lignes (les colonnes seront toujours les mêmes)
1ère solution : je crois qu'il s'agit d'un contrôle activeX ? comment faire pour le modifier ?

2ème solution : macro donc je sais comment modifier ...


Merci beaucoup à vous 3
 

gilbert_RGI

XLDnaute Barbatruc
Re : macro pour transformer un fichier excel

Merci à vous. Les 2 marchent bien.
Reste à me rappeler pour la boucle
(tant qu'il y a des lignes (les colonnes seront toujours les mêmes)
1ère solution : je crois qu'il s'agit d'un contrôle activeX ? comment faire pour le modifier ?

2ème solution : macro donc je sais comment modifier ...


Merci beaucoup à vous 3

une autre façon

Code:
Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim ligne As Integer
    Dim msg(1 To 65536)
    ligne = Range("A65536").End(xlUp).Row
    Open ThisWorkbook.Path & "\Enregistrement " & Format(Now(), "dd mmm yyyy") & ".txt" For Append Shared As #1
    For i = 1 To ligne
       msg(i) = "Enregisrement " & i _
                  & vbCrLf & Sheets("feuil1").Range("A" & i).Value & vbCrLf & Sheets("feuil1").Range("B" & i).Value & vbCrLf & _
                  Sheets("feuil1").Range("C" & i).Value & vbCrLf & Sheets("feuil1").Range("D" & i).Value & vbCrLf
    msgGG = msgGG & vbLf & msg(i)
    Next
   
    Print #1, msgGG
    Print #1, "Fin"
    Close #1
End Sub

Cdlt

RGI
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87