Fichier Source trop gros

kromei

XLDnaute Nouveau
Bonjour,
Voilà j'utilise une macro complexe sous Excel qui effectue un traitement sur une source importée d'un serveur pour en sortir des données propres.

Le soucis est que j'ai un fichier assez énorme et excel ne le digère pas (2007) et je suis conscient des limites d'Excel sur le sujet, bien que repoussées de 2003 à 2007.

Ma question, comment feriez vous pour analyser ce genre de fichier énorme ? Peut on lire partiellement le fichier comme on ferait un more en shell puis continuer sur la X ieme partie X étant un nombre de ligne maximal par traitement. J'aimerai éviter de scinder le fichier source sur le serveur


Merci de vos réponses
 

Efgé

XLDnaute Barbatruc
Re : Fichier Source trop gros

Bonjour kromei
Juste une idée, si ton fchier est "trop gros" pour Excel, c'est qu'il s'agit d'un fichier texte ?
Dans ce cas, tu peux le traité avant d'importer les données dont tu as besoin:
VB:
Sub test()
Nom_fichier = ThisWorkbook.Path & "Le_nom_de_mon_fichier.txt"
 'Ouverture du fichier texte
 Open Nom_fichier For Input As #1
    'Tant que lafin n'est pas rencontrée
    While Not EOF(1)
        'On lit la ligne
        Input #1, Ligne
        'Traitement suivant besoin
    'Ligne suivante
    Wend
'Fermeture du fichier
Close #1
End Sub
Cordialement
 

chris

XLDnaute Barbatruc
Re : Fichier Source trop gros

Bonjour
Coucou Efgé

Si l'analyse peut être faite par TCD, l'idéal serait d'accéder aux données dans une BD et notamment une vue.

Avec 2010, Powerpivot (aussi orienté TCD) permet de stocker des millions de lignes (stockage hors onglets) mais avec 2007 tu es un peu coincé...

A moins que tu n'aies Access pour récupérer les données puis traiter ensuite avec Excel...
 

MJ13

XLDnaute Barbatruc
Re : Fichier Source trop gros

Bonjour à tous

Outre ce qu'a dit Efgé :) et Chris :) tu as aussi l'extraction de type ODBC basé sur le SQL qui permet d'extraire facilement des données.

Mais, cela dépend surtout de ce que tu veux faire :confused:. Sinon, il faudrait plus aller voir du côté d'Access ou autre SGBD.

Pour Powepivot, je 'ai testé un peu sur XL2013, mais je n'ai pas vu vraiment son utilité par rapport au TCD ou autres extractions de type ODBC (qui pour moi est ce qu'il y a de mieux dans Excel). Mais avec l'explication de Chris, je comprend mieux l'inérêt sur un grand nombre de lignes :eek:.
 

kromei

XLDnaute Nouveau
Re : Fichier Source trop gros

Bonjour à tous merci pour vos réponses rapides.
Concernant les réponses propres aux bases de données ceci n'est pas possible. Ma "base de donnée" est constituée d'un ensemble de fichier texte ( des .log) .
La réponse de Efgé est intéressante mais ce qui me serait utile au vu de ma macro existante serait de traiter un nombre de ligne conséquent d'un coup . J'utilise en effet en partie des TCD. Mes données sources sont importés dans un onglet puis elles sont traités lignes par lignes pour le coup dans un autre onglet basé sur les fonctions d excel. Puis c'est de cet onglet que je pars pour créer mon TCD.

Ce qui serait pas mal dans un sens serait que le TCD garde en mémoire les premiers traitements pour fusionner ses données avec le second TCD généré mais ça me parait vraiment pas possible dit commme ça
 

MJ13

XLDnaute Barbatruc
Re : Fichier Source trop gros

Re

Pour exporter en fichier texte, c'est très simple avec un code de ce type à adapter facilement en prenant le code de Efgé et en remplaçant input par Output:

Code:
Open Nom_fichier For Output As #1
Print #1, cells(1,1)
Close
 
Dernière édition:

kromei

XLDnaute Nouveau
Re : Fichier Source trop gros

prendre le fichier comme source je le fais déjà il n'y a pas de soucis de ce coté je me suis mal exprimé, le soucis vient que le fichier est trop volumineux pour Excel. J'aimerai qu'Excel le "découpe" en 2 ou 3 ou X suivant la taille avec un nombre de ligne fixé par exemple
 

chris

XLDnaute Barbatruc
Re : Fichier Source trop gros

Bonjour

...
Pour Powepivot, je 'ai testé un peu sur XL2013, mais je n'ai pas vu vraiment son utilité par rapport au TCD ou autres extractions de type ODBC (qui pour moi est ce qu'il y a de mieux dans Excel). Mais avec l'explication de Chris, je comprend mieux l'intérêt sur un grand nombre de lignes :eek:.

Dans 2013, sauf si tu as la version Pro plus, l'intérêt est très limité et n'offre pas le stockage de gros volumes car on n'accède pas à la gestion du modèle de données.

Dans 2010 (ou 2013 pro plus) on a, en plus des possibilités TCD classiques, le langage DAX qui permet des calculs que ne fait pas le TCD classique.

Mais dans la majorité des cas c'est le moteur ODBC qui offre effectivement le plus de possibilités et de puissance pour l'accès au données.
 

chris

XLDnaute Barbatruc
Re : Fichier Source trop gros

Bonjour
prendre le fichier comme source je le fais déjà il n'y a pas de soucis de ce coté je me suis mal exprimé, le soucis vient que le fichier est trop volumineux pour Excel. J'aimerai qu'Excel le "découpe" en 2 ou 3 ou X suivant la taille avec un nombre de ligne fixé par exemple

Tu n'as pas répondu concernant la disponibilité d'Access pour toi : est-ce une piste possible ?
 

Efgé

XLDnaute Barbatruc
Re : Fichier Source trop gros

Re kromei, Bonjour chris :), Bonjour MJ :)
@ kromei
Si tu utilise un tcd, c'est que tu regroupes tes données.
Donc en ouvrant tes .Log en Texte, et en regroupant tes données par macro, tu devrais arriver à un nombre de ligne acceptable.

"Quand on fait un fichier, il faut embarquer toutes les données nécessaires mais seulement les données nécessaires"

Cordialement
 

kromei

XLDnaute Nouveau
Re : Fichier Source trop gros

@ Chris Access n'est malheureusement pas une solution pour moi c'est bien dommage
@Efgé j'ouvre déjà le .log comme un fichier Texte mais celui-ci a un nombre de ligne tellement énorme qu'il ne peut même pas l'ouvrir.
Les données sont nécessaire car non filtrable à part en y effectuant le traitement Excel que je fais, mais encore faut il pouvoir ouvrir et traiter le fichier ..
 

Efgé

XLDnaute Barbatruc
Re : Fichier Source trop gros

Re
J'ai déja ouvert des fichiers de plus de 40Mo avec la mèthode que je t'ai proposé (je viens même de traité un fichier de plus de 80 M0).
Bien sur si tu utilise un code du type enregistreur de macro "Fichier/ouvrir/...." tu te retrouve avec tout ton fichier dans la feuille (et il semble que le problème soit justement le nombre de ligne de la feuille).
Dans mon code, tu n'ouvre qu'en mémoire le fichier et jamais physiquement.
Cela te permets de traiter les lignes, extraire, concaténer, calculer, etc... les données.

Mais bon....
Bon courage, je ne vois pas autre chose.
Cordialement
 

Dranreb

XLDnaute Barbatruc
Re : Fichier Source trop gros

Bonjour.
Les propositions d'Efgé sont incontestablement la base de la solution.
Encore faudrait-il connaitre la structure des lignes de texte et le processus de regroupement qu'on souhaite y appliquer.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry