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

VBA Access Discussion :

Accélérer l'export vers Excel


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 79
    Par défaut Accélérer l'export vers Excel
    Bonjour,

    j'ai developpé une appli sous Access, qui lit environ 500 Mo de fichiers texte, les stocke en table, les triture et restitue les résultats sous forme de fichiers Excel.
    J'ai environ 450 fichiers (de 1Ko à 35 Mo) en entrée et je produis environ 150 fichiers Excel (de 31 Ko à 38Mo).

    Les fichiers Excel doivent être mis en forme, une courbe est ajoutée,...
    Mon soucis est que ce traitement est trèèèès long (globalement, 36heures sur un xeon 2.53Ghz, 3.5Go de ram, disques en raid1, sous XP Pro), j'écris environ 10 lignes à la secondes (certains onglets ont plus de 50000 lignes !).

    J'utilise un recordset pour parcourir mes données sous Access, je fais la mise en forme en bloc après l'insertion des données dans Excel (et non pas celulle par cellule), les exécutions sont masquées, Excel n'est pas visible...

    Existe-t-il un moyen pour accelerer cette mise en place de données sous Excel ?
    J'ai lu le tuto sur l'optimisation (http://loufab.developpez.com/tutorie.../optimisation/), suivi quelques trucs, sans succès.
    Néanmoins, une phrase du tuto me fait tiquer (§ III-H. VBA) :
    Pour des traitements EXCEL / ACCESS utilisez le passage de recordset via DAO au lieu de la modification de cellules (Range, Cell…)
    Cela signifierait-il qu'il est possible d'écrire tout un RS en une fois dans Excel ? Quelqu'un aurait-il un lien qui explique cette phrase ?

    Merci d'avance pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 415
    Par défaut
    Peux-tu mettre un extrait du code qui 'rempli' ton Excel ?

    Tu pourrais aussi regarder du côté des requêtes faites à partir d'Excel qui 'pompent' les données dans une base Access. Ça marche bien même si c'est un peu pénible pour la maintenance.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Par défaut
    Pour faire une réponse générale, je dirais que le plus optimum est de faire une table "SAS" qui correspond au format d'export de tes données vers Excel et de transformer les données sources par des requêtes SQL via docmd.RunSQL.

    Cependant cette solution a des limites puisqu'il faut faire un DELETE de la table SAS avant chaque traitement ce qui provoque un grossissement de la base que seul un compact de base peut supprimer. Dans ce cas il est peut être nécessaire d'avoir plusieurs bases (Base de données sources, base de traitement) et de lier la(les) table(s) source(s) à la base de traitement.

    Il existe aussi d'autres solutions pour optimiser ton code, mais cela dépends de ce que tu "tritures". Comme la mise en tableau de données très souvent utilisées, l'utilisation de Seek plutôt qu'une requête SQL et évidement le bon indexation des données.

Discussions similaires

  1. [crystal report] export vers excel 2000 data only
    Par bobwilson dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 22/02/2005, 18h30
  2. Exporter vers Excel, et créer automatiquement un graphe
    Par NiKKiLLeR dans le forum Windows
    Réponses: 2
    Dernier message: 10/02/2005, 19h02
  3. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53
  4. [CR] Exportation vers Excel
    Par djamel64 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 01/12/2003, 14h52
  5. exportation vers excel
    Par Pm dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/01/2003, 14h48

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