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 :

Macro de suppression de ligne avec un mot [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Macro de suppression de ligne avec un mot
    Bonjour,

    J'ai un problème, je n'arrive pas à supprimer rapidement mes lignes dans excel et je ne peux pas utiliser le filtrage car mon tableau se finira plus tard.
    En fin de compte je cherche à supprimer des lignes qui ont seulement le mot #N/A sur certains champs, le faire à chaque fois est embêtant vu que j'ai plus de 2000 lignes.
    Est-ce qu'il y a une Macro qui peut me permettre de tous les effacer en même temps et sans perdre trop de temps.

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    une méthode dans le style devrait fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub deleteROW()
    Dim c As Range
    Dim R As Long, I As Long
     
    Set c = Range("a1")         'la premiere cellule de la colonne à tester
    R = c.End(xlDown).Row   'la dernière ligne
     
    For I = R To 1 Step -1
        c.Offset(I, 0).Select
        If Application.WorksheetFunction.IsNA(c.Offset(I, 0)) Then c.Offset(I, 0).EntireRow.Delete
    Next I
     
    End Sub
    Alleï Bonjour chez vous!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Je ne connais pas très bien VBA donc je n'ai pas très bien compris le code, peut-tu me l'expliquer pour que je puisse l'appliquer correctement.

    Merci

  4. #4
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    voilà, j'ai un peu changer le code et mis les annotations pour que tu puisse mieux comprendre

    n'hésites pas au besoin!

    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
    Sub deleteROW()
    Dim c As Range
    Dim R As Long, I As Long
     
    Set c = Range("a1")         'la premiere cellule de la colonne à tester
    R = c.End(xlDown).Row   'la dernière ligne de la colonne à tester
     
    'on démarre de la dernière cellule à cause du décalage lorsque l'on va supprimer la ligne
    'on lui donne aussi un incrément de -1
    For I = R To 1 Step -1  
        'ici on lui demande si le résultat de la cellule est "#NA" 
        'je fait appel à la function excel isna pour cela
        'comme argument, je lui donne la première cellule de la colonne à tester 
        'avec un décalage correspondant à la ligne courante dans le test (valeur de I) 
        If Application.WorksheetFunction.IsNA(c.Offset(I, 0)) Then 
                'si c'est bien le cas on supprime la ligne
                c.Offset(I, 0).EntireRow.Delete 
        End If
       'ici, on boucle jusqu'a arriver à la première cellule
    Next I
     
    End Sub
    Alleï Bonjour chez vous!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    merci pour ton aide

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

Discussions similaires

  1. [XL-2010] Suppression de lignes avec Macro
    Par nitro95 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/01/2015, 12h52
  2. [WD-2003] le contraire de sauter une ligne avec des mots
    Par jessicaz dans le forum VBA Word
    Réponses: 21
    Dernier message: 28/04/2009, 08h50
  3. Suppression des lignes avec condition
    Par tientinou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2009, 12h35
  4. suppression des lignes avec sed
    Par dngaya dans le forum Linux
    Réponses: 1
    Dernier message: 29/09/2008, 21h23
  5. Réponses: 6
    Dernier message: 18/10/2006, 09h17

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