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 :

Excel 2010 32 bits sous Windows 10 64 bits


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Par défaut Excel 2010 32 bits sous Windows 10 64 bits
    Bonjour,
    voila une macro toute bête qui consiste à cacher les lignes dont une cellule particulière est vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Compress()
        Dim Ligne As Long
        Dim DernLigne As Long
        DernLigne = WorksheetFunction.CountA(Columns(1)) - 1
        For Ligne = 2 To DernLigne
            If Range("C" & Ligne).Value = "" Then
                Rows(Ligne).Hidden = True
            End If
            Ligne = Ligne + 1
        Next
    End Sub
    Cette macro fonctionne, mais met un temps infiniment long à s'exécuter.

    Y-a-t-il une explication ???

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut à lire et assimiler : Dernière ligne et la dernière colonne renseignées d'une feuille

    Déjà, sans chercher qqch de plus rapide ou efficace, dans ce genre d'opération on commence par la dernière ligne en remontant jusqu'à ici la 2eme ligne avec un step -1

    P.-S. : Balise ton code

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Par défaut
    J'ai modifié la macro comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Compress()
        Dim Ligne As Long
        Dim DernLigne As Long
        DernLigne = WorksheetFunction.CountA(Columns(1))
        For Ligne = DernLigne To 2 Step -1
            If IsEmpty(Range("C" & Ligne)) Then Rows(Ligne).EntireRow.Hidden = True
        Next
    End Sub
    En exécution pas à pas, quand on arrive sur une ligne à cacher, ça prend un temps très long avant d'exécuter le EntireRow.Hidden = True

    ?????????

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlCalculationManual
    en début de procédure et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlCalculationAutomatic
    à la fin.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    devrait accélérer ton code.

    Si tes cellules sont réellement vides (pas de formule ="") tu peux faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Compress()
        Dim DernLigne As Long, pl As Range
        DernLigne = Cells(Rows.Count, 1).End(xlUp).Row
        Set pl = [C1].Resize(DernLigne).SpecialCells(xlCellTypeBlanks)
        If Not pl Is Nothing Then pl.Rows.Hidden = True
    End Sub
    Ca évite la boucle, tout est fait d'un coup.
    eric

  6. #6
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Par défaut
    Bonjour,
    merci pour vos contributions, j'ai implémenté la dernière proposition, ça marche, mais pour traiter 994 lignes, il faut plus de 2 minutes !!!!

Discussions similaires

  1. Réponses: 17
    Dernier message: 14/02/2015, 23h25
  2. [PC fixe] 64 bits sous windows 7 et excel
    Par yaboki dans le forum Ordinateurs
    Réponses: 3
    Dernier message: 29/01/2010, 17h31
  3. Pb d'install sous Windows XP 64 bits
    Par Mil17 dans le forum wxPython
    Réponses: 2
    Dernier message: 19/10/2009, 16h46
  4. installation d' Eclipse sous Windows XP 64 bit
    Par scalande dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/10/2008, 15h48
  5. Réponses: 3
    Dernier message: 01/03/2008, 16h00

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