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 :

Lenteur code VBA [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Juin 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2016
    Messages : 21
    Par défaut Lenteur code VBA
    Bonjour,

    Le code suivant est extrêmement lent, y aurait-il des solutions pour l'améliorer?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub temp()
     
    Dim i As Long
     
    dernierecel = Sheets("Suivi référents").Range("A" & Rows.Count).End(xlUp).Row
     
        For i = dernierecel To 2 Step -1
     
           If Sheets("Suivi référents").Range("C" & i) <> Sheets("Listes secteurs").Range("C3") Then
           Sheets("Suivi référents").Rows(i).EntireRow.Delete
     
       End If
     
       Next i
     
    End Sub
    Merci par avance!

  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
    Bonjour,

    le code n'est pas lent, sa logique oui ‼ (cette boucle = lenteur)
    Possibillté de gain en désactivant l'affichage, consulter l'aide VBA de la propriété   ScreenUpdating   …


    Sinon une astuce via le B-A-BA d'Excel donc déjà manuellement plus rapide que ce code :

    • utiliser une colonne supplémentaire pour différencier les lignes à conserver des lignes à supprimer
       via une simple formule de feuilles de calculs retournant FAUX ou VRAI.

    • Une fois la colonne remplie, trier la plage sur cette colonne :  les lignes à supprimer sont regroupées en fin de plage.

    • Reste juste à effacer le bloc de ces lignes (plus rapide que la suppression) et la colonne supplémentaire …


    Évidemment si une automatisation est vraiment nécessaire,
    toutes ces opérations manuelles peuvent être retranscrites via l'Enregistreur de macro.

    Sans compter les exemples déjà présents dans les discussions de ce forum …

    D'autres solutions intermédiaires comme par exemple via un filtre.

    ___________________________________________________________________________________________________________
    Je suis Paris, New-York, Mogadicio, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Juin 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2016
    Messages : 21
    Par défaut
    Bonjour,

    J'ai suivi vos conseils, j'ai supprimé la boucle et suis passée par un filtre pour effacer les lignes voulues. J'ai gagné pas mal de temps sur l'exécution de cette macro.

    Merci et bonne journée

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

Discussions similaires

  1. afficher un graphique dans word à partir de mon code vba
    Par guysocode dans le forum VBA Word
    Réponses: 2
    Dernier message: 07/11/2005, 14h15
  2. Réponses: 2
    Dernier message: 27/10/2005, 15h51
  3. Réponses: 4
    Dernier message: 13/10/2005, 14h44
  4. Réponses: 3
    Dernier message: 06/09/2005, 10h27
  5. Comment creer une procédure stockée à partir d'un code VBA?
    Par Alcor020980 dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 24/05/2005, 19h55

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