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

Excel Discussion :

Supprimer ligne d'une cellule non vide


Sujet :

Excel

  1. #1
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 45
    Points
    45
    Par défaut Supprimer ligne d'une cellule non vide
    Bonjour,

    Je voudrai avec VBA supprimer toutes les lignes dont les cellule de la colonne C sont vides.
    Je voudrai aussi supprimé de la colonne D toutes les lignes de la cellule ne contiennet pas "AAA" et "BBB"

    J'ai donc essayé ce 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
     
    k =ActiveSheet.range("A" & rows.count).End(xlUp).Row
     
    for n = k to 2 step -1
    if range("C" & n).Value="" then 
    Rows(n).Delete
    End If
    Next  n 
     
    for m=k ro 2 step -1
    if Range ("D" & m).value <> "AAA" and Range ("D" & m).value <> "BBB" Then
    Rows(m).Delete
    End If
    Next  m
    Mais cela ne mache pas, et il n'y a aucune erreur dans le code. La valeur que k est bonne.

    Merci.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 934
    Points : 28 930
    Points
    28 930
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mais cela ne mache pas, et il n'y a aucune erreur dans le code. La valeur que k est bonne.
    C'est curieux ce que tu écris, parce-que d'après ce que tu édites comme code, c'est la variable J qui contient le n° de la dernière ligne (d'après la ligne 2 de ce que tu publies).

  3. #3
    Membre du Club
    Inscrit en
    Mai 2013
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 83
    Points : 45
    Points
    45
    Par défaut
    Oui Désolé, C'était juste une erreur de frappe ( que j'ai corrigé).

    Mais sur le code Excel, elle n'y est pas.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 934
    Points : 28 930
    Points
    28 930
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Oui Désolé, C'était juste une erreur de frappe ( que j'ai corrigé).
    Mais sur le code Excel, elle n'y est pas.
    Le Copier/Coller fonctionne aussi de ton code VBA vers le forum Developpez.
    Si tu souhaites une réponse correcte il est préférable de publier un code qui correspond à la réalité sinon on perd son temps.

    Je constate dans ton code que tu as deux boucles utilisant la variable k or après avoir supprimé des lignes, la valeur de k ne doit plus correspondre à la réalité.
    Ce n'est sûrement pas la cause de ton problème mais il vaudrait mieux recalculer sa valeur.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 934
    Points : 28 930
    Points
    28 930
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce code fonctionne à condition que la colonne A soit remplie et qu'il n'y ait pas de colonnes vides dans la plage.
    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
    Sub RowDelete()
     Dim rng As Range, r As Long
     Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A1").CurrentRegion
     ' Suppresion des lignes dont les cellules de la colonne C sont vides
     With rng
     .Offset(, 2).Resize(, 1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
     End With
     Set rng = ThisWorkbook.Worksheets("Feuil1").Range("A1").CurrentRegion
     With rng
      For r = .Rows.Count To 2 Step -1
       If Trim(LCase(.Cells(r, 4))) <> "aaa" And Trim(LCase(.Cells(r, 4))) <> "bbb" Then
       .Cells(r, 4).EntireRow.Delete
       End If
      Next
     End With
    End Sub
    Dans l'exemple, on supprime les espaces avant et après de la cellule D & r et on ne respecte pas la casse.

    D'autres tests sont possibles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(r, 4) <> "aaa" And .Cells(r, 4) <> "bbb" Then .Rows(r).Delete
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If LCase(.Cells(r, 4)) <> "aaa" And LCase(.Cells(r, 4)) <> "bbb" Then .Rows(r).Delete

Discussions similaires

  1. [XL-2010] Ajout de texte dans une cellulle non vide
    Par mikmak78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2014, 15h18
  2. [XL-2010] Sélectionner une cellule non vide et la copier à un endroit définit par sa valeur
    Par bipbip.acme dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/02/2014, 20h28
  3. [XL-2007] Suppression de ligne si une cellule est vide
    Par cynoq dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/12/2011, 17h23
  4. [XL-2007] Concaténer du texte a une cellule non vide
    Par amirale dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 29/08/2011, 17h06
  5. [XL-2007] Boucle jusqu'à une cellule non vide?
    Par MANOU06 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/02/2011, 23h54

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