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 :

Optimisation de code pour execution plus rapide [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut Optimisation de code pour execution plus rapide
    Bonjour a tous,

    Je vous sollicite pour voir si il y a une solution pour rendre plus rapide l’exécution d'une commande de masquage de ligne en fonction d'une cellule contenant un Zéro ou pas.
    Le code ci dessous fonctionne, mais comme la feuille comporte un peu moins de 400 lignes le code si dessous est un peu lent a s’exécuter.
    Existe t il un autre code plus rapide?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub masque_0()
        Application.Calculation = xlCalculationManual
        Dim i As Integer
     
        If ActiveSheet.Index = 1 Then
     
        For i = 8 To Range("E65536").End(xlUp).Row
            If Cells(i, 7).Value = 0 Then
                Cells(i, 7).EntireRow.Hidden = True
            End If
        Next i
     
        ElseIf ActiveSheet.Index = 6 Then
        For i = 3 To Range("D65536").End(xlUp).Row
            If Cells(i, 5).Value = 0 Then
                Cells(i, 5).EntireRow.Hidden = True
            End If
            Next i
     
        ElseIf ActiveSheet.Index = 6 Then
        For i = 3 To Range("D65536").End(xlUp).Row
            If Cells(i, 4).Value = 0 Then
                Cells(i, 4).EntireRow.Hidden = True
            End If
            Next i
     
        Else
        For i = 5 To Range("D65536").End(xlUp).Row
            If Cells(i, 6).Value = 0 Then
                Cells(i, 6).EntireRow.Hidden = True
            End If
            Next i
     
        End If
    Merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    ne serait-il pas pertinent de plutôt appliquer un filtre automatique (Autofilter), avec un critère "<>0" sur la colonne ?

  3. #3
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    Peut être que si mais je n'ai jamais utilisé les filtres.
    Peux tu m'en dire plus.
    Les filtres agissent ils comme un masquage, a t'on au final le même résultat?

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Voilà pour la prise en main

    le premier thème de la FAQ répond à ta dernière question

    FILTRES EXCEL

  5. #5
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    Merci joe.levrai,

    Je vais approfondir ça, mais ça me parait pas mal.

    Merci encore

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/07/2011, 09h19
  2. Réponses: 0
    Dernier message: 29/08/2007, 16h57
  3. [C] code pour executer une commande shell
    Par waldoun dans le forum Linux
    Réponses: 3
    Dernier message: 05/05/2007, 22h41
  4. Optimiser un code pour éviter " out of memory"
    Par risack dans le forum MATLAB
    Réponses: 16
    Dernier message: 19/03/2007, 09h36
  5. Réponses: 8
    Dernier message: 14/09/2006, 16h43

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