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 :

accélerer des manipulations Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 63
    Points
    63
    Par défaut accélerer des manipulations Excel
    Bonjour,

    j'utilise une macro sous Access qui exporte des données dans une feuille excel et la met en forme. La mise en forme de la feuille prend beaucoup de temps (formattage, copier coller etc dans des boucles For).

    Est-ce qu'il y a un moyen d'accélerer l'éxécution d'un code VB qui écrit dans une feuille excel (sachant que les modifications ne sont pas affichées pendant l'éxécution) ?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Bonjour,
    Pour avoir dejà travaillé sur le même genre de problèmatique, je te conseille de procéder autrement.
    Je suppose que les données exportées sur Excel sont à l'origine le résultat d'une requête Access. Plûtot que de travailler d'access vers Excel je travaillerais dans l'autre sens.

    Tu crées par exemple un onglet "données" sur excel. Tu te places ensuite sur la cellule "A1" de cet onglet. Tu vas ensuite dans le menu données puis créer une requête. Tu recherches ta base et ta requête.
    Tu auras ainsi le résultat de cette requête sur excel sans avoir à ouvrir Access.

    Ces données évoluant tu peux créer une macro qui actualise les résultats de cette requête. Ca équivaut à faire un clique droit sur ces données puis actualiser.

    Pour la mise en forme tu peux créer un nouvel onglet qui présentera les données actualisées de l'onglet "données".

    Si tu as des problèmes de lenteur au niveau du code, tu peux déjà mettre en cause le fait de faire des copier-coller.
    Plutôt que de faire un copy paste, tu peux par exemple faire ce genre de chose :
    Sheets("Résultat").Range("A1:A3").Value = Sheets("données").Range("A1:A3").Value
    Bonne soirée

    Geoffray

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Points : 63
    Points
    63
    Par défaut
    merci à toi, je vais voir

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    la suggestion de geoffroy est excellente
    mais il est inutile d'avoir deux zones
    il suffit d'effectuer une fois pour toute la mise en forme sur la zone de récupération des données

    de façon à disposer du maximum de souplesse on crée une requête paramétrée dont les paramètres sont liés à des cellules excel

    cela permet de piloter les données récupérées depuis excel et surtout de disposer des options de mise à jour

    en outre en donnant à un des paramètres une valeur non compatible avec
    la valeur on ne récupère aucune donnée ce qui peut accroître grandement
    les temps d'enregistrement/ouverture

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Donc tu conseilles de piloter Excel à partir d'Access et non l'inverse ?

Discussions similaires

  1. Manipuler des fichiers Excel avec Perl
    Par Buboba dans le forum Modules
    Réponses: 2
    Dernier message: 04/09/2012, 13h54
  2. Manipulation des feuilles excel en Java
    Par cathy1 dans le forum Documents
    Réponses: 7
    Dernier message: 04/04/2011, 10h48
  3. manipuler excel avec delphi ( gestion des feuilles)
    Par lila23 dans le forum Débuter
    Réponses: 4
    Dernier message: 01/04/2009, 15h14
  4. [c#][.net 1.1] - Manipuler des fichiers Excel en c#
    Par skystef dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/08/2007, 13h10
  5. accélerer des manipulations Excel
    Par pschmidtke dans le forum Access
    Réponses: 5
    Dernier message: 27/06/2006, 15h15

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