Extraction de lignes dans 1 fichier texte vers 1 fichier excel

cs_daph Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004 - 10 janv. 2003 à 16:54
cs_daph Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004 - 16 janv. 2003 à 09:52
HELP !!!

j'ai un fichier texte (correspondant à un listing), très lourd (je ne peux pas l'ouvrir dans sa globalité sous excel).
ex :
Page : 4818
£dg1 GRAND
========== =
JA D.CPT T
========== =
---------- -
AC 10/10/2001
ERL 2 966.84
EP 02/01/2002
De ce fichier texte, il me faut extraire vers un nouveau fichier excel, uniquement les lignes avec une date 2002.
Je connais assez bien le code VBA dans excel, mais beaucoup moins la manipulation de fichier texte.
Merci d'avance de votre aide.

4 réponses

cs_zpiboo Messages postés 46 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 11 juin 2003 1
10 janv. 2003 à 17:21

Open "Nom_Fichier" for input as #1         
'Ouvre un fichier


Line Input #1,a$
'Lit une ligne d'un fichier et la met dans la variable a$


While not eof(1)
wend
'Lit un fichier du début à la fin


mid$(var,x,y)
'Extrait une chaîne d'une variable
'Commencant à x et de longueur y


i=instr(1,chaineIni,ChaineCh)
'Renvoit l'indice de la première lettre 
'd'un chaîne cherchée 'dans une autre chaîne.
'Si non trouvé renvoit 0.



right$(var,nbcar)
'renvoit la sous chaine de Nbcar caractères à partir de droite


left$(var,vbcar)
'renvoit la sous chaine de Nbcar caractères à partir de gauche.
0
cs_daph Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004
15 janv. 2003 à 17:49
Merci pour ces indications qui m'ont permis de bien avancer sur le code, retranscrit ci-dessous.

Il me reste 1 problème : le fichier créé avec les lignes extraites du 1er, ne s'ouvre pas "bien" en fichier "txt" sous excel => les données ne sont séparées dans les colonnes
Quelle étape ai-je raté ?

FileNumber = FreeFile
Open "FICH.txt" For Output As #FileNumber
Open CHEMIN & "" & FICH_TXT For Input As 2
Do While Not EOF(2)
Line Input #2, CONTENU_LIGNE
CHAINE_TEST = Mid(CONTENU_LIGNE, 11, 4)
If CHAINE_TEST <> ANNEE Then
Else
Write #1, CONTENU_LIGNE
End If
Loop
Close 2
Close #FileNumber
0
cs_zpiboo Messages postés 46 Date d'inscription vendredi 12 avril 2002 Statut Membre Dernière intervention 11 juin 2003 1
16 janv. 2003 à 09:28
Comprend pas trop ce que tu veux dire par colonne.
Comment veut tu structurer tes données dans le fichier destination :

Comme elles étaient dans le fichier initial ou alors autrement.
Comment fait tu pour exporter vers excel ??
Importation données externes ???

Envoi quelques lignes du fichiers initiales disons une dizaine et le résulatat que tu veut obtenir ensuite j'essaierai de t'éclairer.
@++ Bonne jounée.
0
cs_daph Messages postés 4 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 16 juillet 2004
16 janv. 2003 à 09:52
Merci de ton aide. En persévérant, j'ai trouvé la solution !
Le problème était le suivant : mon fichier recevant les données extraites était nommé FICH.csv dans le code
Open "FICH.csv" For Output As #FileNumber
Or, à l'ouverture ultérieure de ce fichier sous excel, je réccupérais les données dans la 1ere colonne de la feuille excel.
En changeant l'extension .csv en une extension "bidon" .zzz, cela va beacoup mieux et mes données sont ensuite bien réparties dans différentes colonnes, selon le séparateur.
Visiblement, VB croit reconnaitre .CSV mais ne traite pas bien les données.

Encore merci pour ton aide !!
Bonne journée.
:)
0
Rejoignez-nous