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 :

Supprimer lignes masquées [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut Supprimer lignes masquées
    Bonjour à tous

    Dans le cadre de mon travail, je suis amené à faire souvent une même opération qui consiste a supprimer certaines lignes d'une base de données dans le but d'alléger celle-ci. (~3000 lignes pour 70 colonnes)

    Je procède toujours de la même façon, je filtre sur les lignes que je veux garder histoire de les visualiser pour ne pas en oublier ou en avoir des superflus.
    Ensuite j’enlevé les filtres et re filtre sur les autres lignes pour ensuite les supprimer.

    C'est quand même dommage d'avoir les lignes qu'on veut et de devoir refaire une manipulation pour supprimer les autres.
    Donc je me suis créé une macro qui va simplement supprimer les lignes masqué.
    Voilà le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Supprimer_Lignes_Masquees()
     
        Application.ScreenUpdating = False
     
            Dim plage As Range: Set plage = [A2].CurrentRegion
            Dim i&, j&: j = plage.Cells(plage.Cells.Count).Row
     
            For i = j To 3 Step -1
                If Rows(i).Hidden = True Then Rows(i).Delete
            Next i
     
        Application.ScreenUpdating = True
     
    End Sub
    Je vous expose maintenant mon problème, certains l'auront sûrement deviné en lisant le code, cette proc est très long à s'exécuter.
    Si je pouvais sélectionner toutes les lignes Hidden et ensuite les supprimer d'un seul Delete se serais parfait.

    J'espère être clair.
    Merci d'avance à tous ceux qui prendront le temps de m'aider
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Je vous suggère de faire le contraire:
    - vous affichez d'abord toutes les lignes que vous voulez supprimer
    - vous passer par le Range.SpecialCells.xlCellTypeVisible et vous pouvez tout supprimer une 1 passe rapide
    - vous affichez ce qui reste ensuite

    Et je vous assure que c'est quasiment instantané
    Si cela peut vous aider ....
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  3. #3
    Membre éprouvé
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Points : 1 116
    Points
    1 116
    Par défaut
    Citation Envoyé par antonysansh Voir le message
    Si je pouvais sélectionner toutes les lignes Hidden et ensuite les supprimer d'un seul Delete se serais parfait.
    sans VBA il y a un outil très puissant qui fait ça va voir ce lien
    http://www.extendoffice.com/document...s-columns.html

  4. #4
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Merci a vous deux pour vos réponses

    Citation Envoyé par vinc_bilb Voir le message
    Bonjour,

    Je vous suggère de faire le contraire:
    - vous affichez d'abord toutes les lignes que vous voulez supprimer
    - vous passer par le Range.SpecialCells.xlCellTypeVisible et vous pouvez tout supprimer une 1 passe rapide
    - vous affichez ce qui reste ensuite

    Et je vous assure que c'est quasiment instantané
    Si cela peut vous aider ....
    C'est déjà ce que je fais manuellement et c'est effectivement instantané.
    C'est juste qu'une fois choisi les lignes que je veux garder je dois refaire une manipulation et parfois je me trompe

    Citation Envoyé par gnain Voir le message
    sans VBA il y a un outil très puissant qui fait ça va voir ce lien
    http://www.extendoffice.com/document...s-columns.html
    Waouh !
    C'est puissant ça, je ne connaissais pas du tout !
    Un grand ça répond exactement à mon besoin et même pas besoin de VB

    Encore merci ! c'est
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

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

Discussions similaires

  1. Supprimer les lignes masquées
    Par bigboss60 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/12/2008, 10h58
  2. [Tableaux] débutant : supprimer ligne tableau
    Par samplaid dans le forum Langage
    Réponses: 2
    Dernier message: 27/03/2006, 10h39
  3. Supprimer ligne
    Par jojoboloss dans le forum Access
    Réponses: 5
    Dernier message: 13/03/2006, 22h12
  4. [VBA-E] Afficher lignes masquées dans une feuille protégée
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/12/2005, 18h59
  5. Supprimer ligne en double
    Par azman0101 dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/06/2004, 17h53

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