je ne suis pas un habitué du forum ... la question a peut-etre été posée des
centaines de milliers de fois mais elle n'apparait pas dans les posts des
derniers jours.
Je récupère sur un site web une base de données sous forme d'un tableau
excel. Celle-ci contient normalement 144 000 enregistrements. Or Excel (dans
sa version XP + sp1&2) refuse de l'ouvrir en entier et refuse d'aller plus
loin que 65536 lignes.
Je suppose qu'il s'agit d'une limitation logicielle y'a t'il moyen de
contourner cela ?
merci de vos réponses.
Fred
le problème est que la base est créée sur le site même et qu'il me génére
une liste de 144 000 lignes. Ce n'est pas copier coller. Access d'une part
refuse de me l'importer ... et le traitement que je lui applique se fait
sous excel. C'est pourquoi je cherche à contourner cela.
merci tout de même
fred
Comme te le dis, Laurent, Excel n'est pas fait pour gérer
un si grand nombre d'enregistrements.
Voici une macro qui peut répartir sur plus d'une feuille
tes données... si besoin
Parue sous la plume de Frédéric Sigonneau
'---------------------------
La procédure ci-dessous importe un fichier texte de grande taille en le
découpant par feuilles de 65000 lignes. Tu peux le modifier facilement pour
limiter le nombre de lignes par feuille à 50000.
FS
--
Frédéric Sigonneau [né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
'===================
'Importer dans un classeur un fichier texte de grande taille
'(ajoute des feuilles chaque fois que le fichier importé
'remplit 65000 lignes)
'Sören Lindqvist, mpep
Sub ImportLargefile()
'Dimension Variables
Dim ResultStr As String
Dim FileName As String
Dim FileNum As Integer
Dim Counter As Double
FileName = "C:\Temp\yourfile.txt"
'If you want an inputbox use the below:
'InputBox("Write name of file and path")
If FileName = "" Then End
FileNum = FreeFile()
Open FileName For Input As #FileNum
Application.ScreenUpdating = False
Workbooks.Add template:=xlWorksheet
Counter = 1
Do While Seek(FileNum) <= LOF(FileNum)
Application.StatusBar = "Importerar Rad " & _
Counter & " Från TextFil " & FileName
Line Input #FileNum, ResultStr
If Left(ResultStr, 1) = "=" Then
ActiveCell.Value = "'" & ResultStr
Else
ActiveCell.Value = ResultStr
End If
If ActiveCell.Row = 65500 Then
' I'll need some space below
'If file is larger than (65500.st)
ActiveWorkbook.Sheets.Add
Else
ActiveCell.Offset(1, 0).Select
End If
Counter = Counter + 1
Loop
Close
Application.StatusBar = False
End Sub
'---------------------------
Salutations!
"Fred" <frederi...@free.fr> a écrit dans le message de news: 3dffa7db$0$20703$626a...@news.free.fr...
fred
Excel est capable de manipuler directement des fichiers textes avec les
instructions Open, Input #, Get, ...
Dans ces conditions, on manipule le tableau sans passer par les cellules, et
donc la limitation des 65 536 lignes maxi tombe.
Tu devrais explorer cette piste pour découper ton fichier en rondelles, ou
alimenter plusieurs feuilles. Je suis crevé et vais me coucher, je ne peux pas
t'en dire plus ce soir. Bon courage
************** Copie de l’aide Excel VBA 98
Écriture de données dans des fichiers
Voir aussi Particularités
Lors du traitement de grandes quantités de données, il est souvent pratique
d'écrire et de lire des données dans un fichier. L'instruction Open vous
permet de créer
des fichiers et d'y accéder directement. Open offre trois types d'accès aux
fichiers :
L'accès séquentiel (modes Input, Output et Append) est utilisé pour écrire
des fichiers texte, tels que des journaux d'erreurs et des états.
L'accès aléatoire (mode Random) est utilisé pour lire et écrire des données
dans un fichier sans le fermer. Dans les fichiers en accès aléatoires, les
données
sont placées dans des enregistrements pour accélérer la localisation des
informations.
L'accès binaire (mode Binary) permet de lire ou d'écrire dans n'importe
quelle position d'octet d'un fichier, notamment pour stocker ou afficher une
image bitmap.
Note L'instruction Open ne doit pas être utilisée pour ouvrir les types de
fichier spécifiques d'une application. Par exemple, n'utilisez pas Open pour
ouvrir un
document Word. Ce type d'ouverture pourrait compromettre l'intégrité du
fichier et endommager ce dernier.
Le tableau suivant présente les instructions généralement employées lors de
l'écriture et de la lecture de données dans les fichiers.
Type d'accès Écriture de données Lecture de données
Séquentiel Print #, Write # Input #
Aléatoire Put Get
Binaire Put Get
**************Fin de l’aide
************** Copie de l’aide Excel VBA 98
Open, instruction
Voir aussi Exemple Particularités
Permet d'exécuter une opération d'Entrée/Sortie (E/S) sur un fichier.
Syntaxe
Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]
La syntaxe de l'instruction Open comprend les éléments suivants :
Élément Description
pathname Requis. Expression de chaîne indiquant un nom de fichier-- peut
comprendre un nom de répertoire ou de dossier et un nom de lecteur.
mode Mot clé indiquant le mode d'ouverture du fichier : Append, Binary, Input,
Output ou Random. S'il n'est pas indiqué, le fichier est ouvert en mode
Random.
access Facultatif. Mot clé indiquant les opérations autorisées sur le fichier
ouvert : Read, Write ou Read Write.
lock Facultatif. Mot clé indiquant les opérations autorisées sur le fichier
ouvert par d'autres processus : Shared, Lock Read, Lock Write et Lock Read
Write.
filenumber Numéro de fichier valide compris entre 1 et 511, inclus. Utilisez
la fonction FreeFile pour obtenir le prochain numéro de fichier disponible.
reclength Facultatif. Nombre inférieur ou égal à 32 767 (octets). Pour les
fichiers ouverts en mode Random, cette valeur représente la longueur de
l'enregistrement. Pour les fichiers séquentiels, elle représente le nombre de
caractères contenus dans la zone tampon.
Remarques
Avant de pouvoir exécuter une opération d'Entrée/Sortie sur un fichier, vous
devez l'ouvrir. L'instruction Open permet d'associer une zone tampon
d'Entrée/Sortie au
fichier et de déterminer le mode d'accès à ce fichier dans cette zone.
Si le fichier indiqué par l'argument pathname n'existe pas, il est créé au
moment où un fichier est ouvert en mode Append, Binary, Output ou Random.
Si le fichier a déjà été ouvert par un autre processus et si le type d'accès
indiqué n'est pas autorisé, l'instruction Open échoue et une erreur se
produit.
La clause Len n'est pas prise en compte si l'argument mode a la valeur Binary.
Important En mode Binary, Input et Random, vous n'êtes pas obligé de fermer
un fichier avant de l'ouvrir sous un autre numéro de fichier. En mode Append
et
Output, vous devez fermer un fichier avant de l'ouvrir sous un autre numéro de
fichier.
***************** Fin de l’aide
Fred a *crit :
Cordialement,
Michel Gaboly
http://www.gaboly.com
> merci pour la macro mais le fichier d'origine n'est pas du txt mais
bien du
> excel ... or le script est adapté au txt. merci tout de même.
>
Va falloir que tu nous expliques cela. Une feuille Excel est limité à
65536 lignes.
--
L'urgent est déjà parti, l'impossible est en train de se faire; pour
les miracles nous demandons 24 heures de plus.
"Fred" <frederi...@free.fr> a écrit dans le message de news:
3dffbaa9$0$20699$626a...@news.free.fr...
fred
The spreadsheet in Microsoft's Office Web Components
supports 18,278 columns and 262,144 rows
mais comme je n'ai pas encore utilisé, je ne saurai
m'exprimer sur la validité de cette solution .......
Qui à déja utilisé ?????
je suis la ficelle Merci !!!
modeste GeeDee
>-----Message d'origine-----
>.
>
"Qui à déja utilisé ?????"
Moi et c'est effectivement une solution possible, c'est comme
un 'petit Excel' destiné au web, très rapide, mais il n'offre pas
la totalité des innombrables possibilités d'Excel. Donc tout
dépend des buts que Fred veut atteindre.
Sinon, le plus élégant amha plutôt que de se lancer dans un
développement lourd (avec UF obligée), serait de récupérer
les données (qui doivent toutes êtres en colonne "A") avec la
solution John Walkenbach dans un fichier txt (csv) et de les
traiter à la demande.
Je suis intéressé aussi.
;-)
--
Cordialement.
Patrick Penet
==========================
Répondez dans le forum, merci !
==========================
"Modeste" <Gee...@mSIXnet.fr> a écrit dans le message de news:
04fe01c2a67c$3ec61680$d7f82ecf@TK2MSFTNGXA14...
Le "petit excel" n'est une bonne solution pour moi car il me fallait
utiliser la commande rechercheV qui n'est pas présente sur ce soft. De
toutes les façons je trouve cette limitation à 65000 lignes complétement
débile. Y'a t'il d'ailleurs un fondement autre que de fourguer des SGBD plus
lourds et donc plus chers ?
merci de vous etre pencher sur mon cas
fred
"Patrick Penet" <php...@club-internet.fr> a écrit dans le message de news:
OI6hL4spCHA.1664@TK2MSFTNGP10...
De toutes façons c'est probablement beaucoup trop pour 99% des
utilisateurs d'Excel.
De toutes façons Excel n'est pas SGBD mais un tableur.
De toutes façons plus les feuilles sont imposantes, plus les risques
d'avoir des erreurs indécelées et indécelables sont importantes.
C'est au responsable du site de se démerder pour offrir des services
qui conviennent aux outils de ses clients.
--
L'urgent est déjà parti, l'impossible est en train de se faire; pour
les miracles nous demandons 24 heures de plus.
"Fred" <frederi...@free.fr> a écrit dans le message de news:
3e00f3fe$0$32232$626a...@news.free.fr...
le site en question (NIMA) dépend de l'armée américaine ... je me vois bien
lui dire "dis toi quand t'auras fini de bombarder et trucider en irak tu
pourrais me faire des feuilles excel toute propre !"
fred