IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

erreur 14 "Espace de chaîne insuffisant" [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut erreur 14 "Espace de chaîne insuffisant"
    Bonjour à tous,

    J'obtiens le message d'erreur "Espace de chaîne insuffisant" lors de la tentative de lecture d'un fichier texte volumineux (146 mo).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function ReadLargeFile(chemin As String) As String
    Dim c As String
    Open chemin For Binary As #1
    c = Space$(LOF(1))
    Get #1, , c
    Close #1
    ReadLargeFile = c
    End Function
    Pensez-vous qu'il y a une solution à ce problème ?

    Merci par avance,
    Cdlt,
    Denis
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Oui : ne pas tout lire d'un seul jet. Décomposer en parties ou lire ligne par ligne et parcourir jusqu'à la dernière

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    Bonsoir,

    Merci bien,

    Oui, j'avais pensé à cette solution, mais il me faut réécrire une bonne partie de mon code.

    J'aurais préféré une autre solution, mais sinon je m'en contenterai.
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Il n'y a pas d'autre solution.

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    Finalement je vais essayer de réduire la taille du fichier car il y a des données inutiles.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Les sages traitent par blocs n'excédant pas 512 k.
    La limite n'est pas seulement celle de la taille, mais dépend également des disponibilités "consécutives" (sans nécessités de chaînages d'adresses) sur le disque dur.

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    et niveau temps de lecture du fichier c'est pareil ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je n'ai rien actuellement sous la main pour tester, et je ne sais pas si c'est encore possible. Cela fait que tout cela c'est au cas où.

    Dans "l'ancien temps", il y avait moyen d'utiliser ADO et le driver "Jet", si on peut dire, d'Access/Excel pour interroger un fichier texte de la même façon que pour ACCESS ou un fichier Excel. Mais, depuis que MS a remplacé le moteur Jet par le moteur ACE, je ne sais pas si c'est encore possible.

    Tu peux toujours jeter un œil sur ces pages:

    https://msdn.microsoft.com/fr-fr/library/bb469892.aspx

    https://support.microsoft.com/fr-fr/kb/247412#top


    https://www.connectionstrings.com/excel/

    https://www.connectionstrings.com/textfile/

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    Merci c'est sympa d'avoir fait ces recherches, je vais étudier ça demain et reviendrai vers toi ces jours prochains si j'ai trouvé une solution,

    J'avais lu également les mêmes conclusions et les mêmes expications que unparia sur le net, mais comme on dit 2 avis valent mieux qu'un !

    Bonne soirée
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Vous êtes apparemment deux sur un problème similaire, bien que sous deux langages VB distincts
    Lis donc également cette discussion :
    http://www.developpez.net/forums/d15...o/#post8596136
    En appelant toutefois ton attention sur le fait que la dernière proposition de DarkVader n'est pas pour VBA.

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 624
    Billets dans le blog
    67
    Par défaut
    Citation Envoyé par unparia Voir le message
    Vous êtes apparemment deux sur un problème similaire, bien que sous deux langages VB distincts
    Lis donc également cette discussion :
    http://www.developpez.net/forums/d15...o/#post8596136
    En appelant toutefois ton attention sur le fait que la dernière proposition de DarkVader n'est pas pour VBA.
    Merci unparia pour ce lien.

    En fait, mon fichier contient des blocs de longueur variable et délimités par un indicateur de début "ID..." et un indicateur de fin "//".
    Je parcours les blocs dans une boucle et mon traitement s'effectue sur chacun des blocs dans cette boucle.

    Je suis donc obligé :

    Soit de lire la totalité du fichier.
    Soit de lire au travers d'une bouble à chaque fois 1 ou plusieurs de ces blocs de longueur variable.

    Concernant le message d'erreur, j'ai l'impression après avoir échangé avec un collègue que c'est un problème VBA :

    "Selon ce que tu fais ensuite avec cette très grosse chaîne de caractères, ça peut fonctionner ... ou pas."

    Cdlt,
    Denis
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  12. #12
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Bonjour à tous,

    User,
    Je rejoint clementmarcotte dans sa solution, elle est d'ailleurs la plus sage, recourir à une interrogation SQL qui puisse récupérer des blocs de données bien précis.

    clementmarcotte,

    Dans "l'ancien temps", il y avait moyen d'utiliser ADO et le driver "Jet", si on peut dire, d'Access/Excel pour interroger un fichier texte de la même façon que pour ACCESS ou un fichier Excel. Mais, depuis que MS a remplacé le moteur Jet par le moteur ACE, je ne sais pas si c'est encore possible.
    Le moteur ACE répond bien à tout ce que le moteur JET pouvait faire, il ne devrait pas y avoir de problèmes avec ça.


    Bien cordialement.
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/04/2011, 15h37
  2. [XL-2003] Manipulation fichier txt et erreur 14, Espace de chaîne insuffisant
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/01/2010, 15h58
  3. [BASH] Insertion de quotes dans une chaîne
    Par Alfred456654 dans le forum Linux
    Réponses: 7
    Dernier message: 21/07/2009, 14h55
  4. MsFlexgrid - ESpace de pile insuffisant (erreur 28)
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/10/2007, 14h18
  5. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo