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 :

Probleme d'efficacité sur un bout de code: quelle solution choisir?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Nono Sto
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 350
    Par défaut Probleme d'efficacité sur un bout de code: quelle solution choisir?
    Chères amies, chers amis du forum

    J'ai un tableau de 57000 ligne et je dois delete en boucle plusieurs d'entre elle et là j'ai le choix entre deux strategies, soit passer un filtre + array et delete les cellule visible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'gvVNTCriteriaVector est le vecteur des elements à selectionner
    .Range(.Cells(4, 1), .Cells(4, 1).End(xlToRight)).AutoFilter Field:=20, Criteria1:=Array(gvVNTCriteriaVector), Operator:=xlFilterValues
    .Range(Cells(5, 1), Cells(intNrow, intNcol)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    ou alors bouclé sur toutes les ligne tester le critere et delete la ligne.

    J'ai remarqué que le filtre par un vecteur de critere prend beaucoup de temps (10 à 20 sec). Pensez vous alors plus rapide la boucle?

    Merci

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    Côté rapidité, il faut désactiver l'affichage, le calcul automatique
    et les évènements (s'il y en a dans les modules du classeur et des feuilles de calculs).

    Voir les propriétés ScreenUpdating, Calculation et EnableEvents

    Pour les deux dernières, ne pas oublier de les réactiver en fin de procédure !

Discussions similaires

  1. un coup de main sur un bout de code
    Par namstou3 dans le forum Flex
    Réponses: 2
    Dernier message: 01/07/2008, 06h27
  2. Eclaircissements sur un bout de code
    Par namstou3 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/09/2007, 20h47
  3. Infos sur ce bout de code vb
    Par Freud44 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 05/09/2007, 14h46
  4. explication sur un bout de code
    Par poporiding dans le forum C++
    Réponses: 2
    Dernier message: 27/06/2006, 18h04
  5. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51

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