Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gros fichier ascii à ouvrir (34 Mo)

5 réponses
Avatar
John Fuss
Bonjour,

je dois ouvrir un fichier ascii enorme qui contient + de 100 000 lignes,
comment puis-je m'y prendre ? Existe t'il dans les fontes de qq'un une macro
d'ouverture de fichier ascii (séparateur ';') qui passe à la feuille
suivante si y'a pas la place ?

Merci d'avance.

John.

5 réponses

Avatar
Pierre Fauconnier
Bonjour

Tu peux essayer avec MSQuery, en définissant des critères de recherche.
Sinon, en VBA, ouvrir le fichier et importer chaque ligne en comptant via
une boucle...

Si MSQuery ne convient pas, revies, on trouvera bien une macro


--
Cela convient-il?
----
Pierre Fauconnier
"C'est lorsqu'il y a un temps mort qu'il faut tuer le temps..."
(remplacer NOSPAM par pfi pour me répondre. Merci)
John Fuss wrote:
Bonjour,

je dois ouvrir un fichier ascii enorme qui contient + de 100 000
lignes, comment puis-je m'y prendre ? Existe t'il dans les fontes de
qq'un une macro d'ouverture de fichier ascii (séparateur ';') qui
passe à la feuille suivante si y'a pas la place ?

Merci d'avance.

John.


Avatar
John Fuss
Merci, je suis en train de négocier en parallèle d'obtenir le fameux fichier
scindé par famille.

Merci

John

"Pierre Fauconnier" a écrit dans le message de
news:3f7be759$0$24174$
Bonjour

Tu peux essayer avec MSQuery, en définissant des critères de recherche.
Sinon, en VBA, ouvrir le fichier et importer chaque ligne en comptant via
une boucle...

Si MSQuery ne convient pas, revies, on trouvera bien une macro


--
Cela convient-il?
----
Pierre Fauconnier
"C'est lorsqu'il y a un temps mort qu'il faut tuer le temps..."
(remplacer NOSPAM par pfi pour me répondre. Merci)
John Fuss wrote:
Bonjour,

je dois ouvrir un fichier ascii enorme qui contient + de 100 000
lignes, comment puis-je m'y prendre ? Existe t'il dans les fontes de
qq'un une macro d'ouverture de fichier ascii (séparateur ';') qui
passe à la feuille suivante si y'a pas la place ?

Merci d'avance.

John.






Avatar
John Fuss
Donc la solution etait l'ouverture ne mode text, et ensuite d'écrire les
lignes 1 par 1 jusqu'à atteindre la fin de la feuille excel en cours, d'en
créé une autre et de continuer. Je m'arrête à 65500 lignes car je veux faire
des regroupements pour réorganiser les lignes par famille.


Sub OuvrirT13()
Dim strLigne As String, i As Integer, tabl() As String, strEnTete As
String
Dim numSheet As Integer, cpt As Long, t13 As Integer, fichier As String
t13 = FreeFile

fichier = Application.GetOpenFilename("Fichier t013 (*.asc), *.asc")
'fenetre d'ouverture de fichier
If Mid(fichier, 2, 1) = ":" Then
Sheets.Add before:=Sheets(1)
Sheets(1).Name = "1"
Application.DisplayAlerts = False
For i = Sheets.Count To 2 Step -1
Sheets(i).Delete
Next
Application.DisplayAlerts = True
Open fichier For Input As #t13 'ouvert en lecture
Line Input #t13, strEnTete
numSheet = 0
cpt = 70000
Do While Not EOF(t13)
cpt = cpt + 1
If cpt < 65500 Then 'Données
Line Input #t13, strLigne
tabl = Split(strLigne, ";")
Sheets(numSheet).Cells(cpt, 1).Select
For i = 1 To UBound(tabl) + 1
Sheets(numSheet).Cells(cpt, i).Formula = tabl(i - 1)
Next
Else 'EnTetes
cpt = 1
numSheet = numSheet + 1
If Sheets.Count < numSheet Then
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = Sheets.Count
Sheets(Sheets.Count).Select
End If
'Mise en place des entetes
tabl = Split(strEnTete, ";")
For i = 1 To UBound(tabl) + 1
Sheets(numSheet).Cells(cpt, i).Formula = tabl(i - 1)
Next
'Fin mise en place des entetes
End If
Loop
End If
End Sub




"John Fuss" a écrit dans le message de
news:blgp58$v6h$
Merci, je suis en train de négocier en parallèle d'obtenir le fameux
fichier

scindé par famille.

Merci

John

"Pierre Fauconnier" a écrit dans le message de
news:3f7be759$0$24174$
Bonjour

Tu peux essayer avec MSQuery, en définissant des critères de recherche.
Sinon, en VBA, ouvrir le fichier et importer chaque ligne en comptant
via


une boucle...

Si MSQuery ne convient pas, revies, on trouvera bien une macro


--
Cela convient-il?
----
Pierre Fauconnier
"C'est lorsqu'il y a un temps mort qu'il faut tuer le temps..."
(remplacer NOSPAM par pfi pour me répondre. Merci)
John Fuss wrote:
Bonjour,

je dois ouvrir un fichier ascii enorme qui contient + de 100 000
lignes, comment puis-je m'y prendre ? Existe t'il dans les fontes de
qq'un une macro d'ouverture de fichier ascii (séparateur ';') qui
passe à la feuille suivante si y'a pas la place ?

Merci d'avance.

John.










Avatar
FB
Essaie un code de ce genre

Workbooks.OpenText Filename:="chemin du fichier",_
Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited,_
TextQualifier:=xlDoubleQuote

-----Message d'origine-----
Bonjour,

je dois ouvrir un fichier ascii enorme qui contient + de
100 000 lignes,

comment puis-je m'y prendre ? Existe t'il dans les fontes
de qq'un une macro

d'ouverture de fichier ascii (séparateur ';') qui passe à
la feuille

suivante si y'a pas la place ?

Merci d'avance.

John.


.



Avatar
Gilgamesh
"John Fuss" a écrit dans le message de news:
blgl6e$rji$
Bonjour,

je dois ouvrir un fichier ascii enorme qui contient + de 100 000 lignes,
comment puis-je m'y prendre ? Existe t'il dans les fontes de qq'un une
macro

d'ouverture de fichier ascii (séparateur ';') qui passe à la feuille
suivante si y'a pas la place ?


-- Je ne dis pas que ma solution est idéale... mais c'est la mienne,
confrontée à une situation analogue.

J'ai installé Edit Pad, une sorte de bloc note amélioré que je trouve très
très pratique. Je colle le .CSV dedans. Une petite option (Shift+F11) permet
de numéroter les ligne. Je peut ainsi coller séparément dans 2 feuille
Excel.

On peut aussi en profiter pour faire Rechercher ";" Remplacer par <TAB>,
c'est parfois plus rapide qu'en passant par le Convertir d'Excel.

A+