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 :

Les variables tableaux


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut Les variables tableaux
    Bonjour à tous,

    Afin de remplir un tableau de données, je vais piocher des infos dans 4 classeurs Excel différents. Je cherche mes variables tableaux pour gagner du temps et pif paf pouf j'obtiens mes données, tout va bien.

    Par contre, pour le moment je suis parti pour réaliser 4 boucles car 4 fichiers différents.
    A l'intérieur de ces boucles, ce sont simplement des recherches de données avec parfois quelques calculs mais rien de bien transcendants (multiplication, addition, etc.)

    Par contre j'ai une question pratique :

    Etant données que mes tableaux sont relativement lourd (une centaine de colonne et plusieurs dizaines de milliers de lignes), 2 cas se présentent :

    - Il vaut mieux que j'ouvre tous mes classeurs, que je charge les variables tableaux une bonne fois pour toute, pour ainsi réaliser une seule boucle ?

    OU

    - Il vaut mieux que j'ouvre mes classeurs un par un, que je charge les variables tableaux lors de chaque ouverture et ainsi de suite jusqu'au dernier classeur ?

    Vous pourriez me dire qu'évidemment il faudrait opter pour la première solution, car celle-ci ne créera qu'une seule boucle mais d'un point de vue mémoire, n'y aurait-il pas des ralentissements dus aux montagnes de données stockées ?

    Merci et bonne journée à vous,

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Trystan441 Voir le message
    Vous pourriez me dire qu'évidemment il faudrait opter pour la première solution
    Je te dirais plutôt, pragmatiquement : fais le test des deux solutions.
    Ca aura cent fois plus de valeur que tous les discours et toutes les démonstrations.

    En début de macro, tu mets le résultat de Now() dans une variable et à la fin tu déduis cette valeur d'un nouveau Now(), comme ça tu sauras le temps qu'à duré chaque macro et ce qu'une solution permet de gagner par rapport à l'autre.
    Et tu ouvres le gestionnaire de tâches pour garder un oeil sur l'occupation de la mémoire.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour Menhir,

    Merci pour ta réponse 👍

    Je fais le test et je reviens mettre les résultats ici même, ça peut, peut être, intéresser certains

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Une question con: Pourquoi une boucle qui parcoure quatre tableaux serait plus rapide que quatre boucles qui parcourent un tableau ?

    A moins d'avoir besoin au même moment d'info provenant de plusieurs classeurs, je choisirais la seconde méthode car tout fichier Excel ouvert consomme de la mémoire même si il est inutilisé.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour Halaster,

    Une question con: Pourquoi une boucle qui parcoure quatre tableaux serait plus rapide que quatre boucles qui parcourent un tableau ?
    Eumh, parce qu'au lieu de boucler 4 fois on ne réalise qu'une seule boucle ? Certes plus longue mais on parcourt tout le tableau source d'un trait.
    Mon raisonnement n'est peut être pas le bon ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par Trystan441 Voir le message
    Mon raisonnement n'est peut être pas le bon ?
    Ou alors c'est le mien, c'est pour ça que je pose la question (et que j'ai précisé qu'elle était certainement con)

    parce qu'au lieu de boucler 4 fois on ne réalise qu'une seule boucle ? Certes plus longue mais on parcourt tout le tableau source d'un trait.
    En supposant que tes tableaux soit de taille identique , pour moi la boucle unique sera forcément 4 fois plus longue qu'un boucle sur un tableau, non ?
    Par exemple, si tu as 4 tableau 10*10 c'est soit 4 boucles avec chacune 100 itération, soit une boucle de 400 itération, je vois comment la boucle unique pourrait être plus courte.

Discussions similaires

  1. [XL-2003] Boucler sur les variables tableaux
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/12/2011, 14h24
  2. [XL-2007] Problème avec les variables tableaux
    Par MouM38 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/09/2010, 23h16
  3. [9i] Faut-il "vider" les variables tableaux ?
    Par AyaGizmo dans le forum SQL
    Réponses: 4
    Dernier message: 20/11/2007, 14h55
  4. Réponses: 4
    Dernier message: 15/08/2006, 11h28

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