Supprimer chaque ligne d'une plage donnée qui comporte une cellule vide

liquoreux

XLDnaute Junior
Bonjour tout le monde,

Je cherche à supprimer chaque ligne d'une plage donnée (2 colonnes) qui comporte une cellule vide dans la deuxième colonne.
Ainsi, si une cellule de la colonne "NBI" contient une cellule vide, alors la ligne qui contient cette cellule et qui va de "traitement indiciaire" à "NBI" est supprimée, ainsi de suite.

Voici la construction :

Copier_depart = 1
Sheets("RESULTAT ACTUEL").Select
For i = 1 To Range("IV1").End(xlToLeft).Column
If Cells(1, i) = "Traitement indiciaire" Then Nb_debut = i
If Cells(1, i) = "NBI" Then Nb_fin = i
Next i
Range(Cells(i, Nb_debut).End(xlDown), Cells(1, Nb_fin).End(xlUp)).Select

'Manque la suite pour supprimer...

End Sub

Merci de votre aide précieuse :)
 

liquoreux

XLDnaute Junior
Re : Supprimer chaque ligne d'une plage donnée qui comporte une cellule vide

Ok, je vous envoie le fichier.

La recherche des colonnes à contrôler s'effectue par leur titre.

Les colonnes extrèmes sont toujours les mêmes : début ("traitement indiciaire")/fin ("NBI").

Des colonnes pourront être insérées entre ces deux colonnes extrèmes.

Le tout étant que si dans la colonne "NBI", une cellule est vide, alors la ligne, constituée par les deux colonnes extrèmes et sur laquelle est située cette cellule vide, est supprimée par le haut.
 

liquoreux

XLDnaute Junior
Re : Supprimer chaque ligne d'une plage donnée qui comporte une cellule vide

L'envoie du fichier n'a apparemment pas marché, le voici donc à nouveau.
 

Pièces jointes

  • Classeur2.xls
    38 KB · Affichages: 184
  • Classeur2.xls
    38 KB · Affichages: 198
  • Classeur2.xls
    38 KB · Affichages: 192

liquoreux

XLDnaute Junior
Re : Supprimer chaque ligne d'une plage donnée qui comporte une cellule vide

Je précise également que le contenu des colonnes extrèmes est variable.

:D
 

Pièces jointes

  • Classeur2.xls
    38 KB · Affichages: 119
  • Classeur2.xls
    38 KB · Affichages: 132
  • Classeur2.xls
    38 KB · Affichages: 130

fanfan38

XLDnaute Barbatruc
Re : Supprimer chaque ligne d'une plage donnée qui comporte une cellule vide

Re,
Je presume qu'il y a un moment ou il faut controler si il y a des cellules vides dans la colonne Q.
Souhaitez vous masquer ou effacer les lignes?
A+ François
 

bqtr

XLDnaute Accro
Re : Supprimer chaque ligne d'une plage donnée qui comporte une cellule vide

Bonjour liquoreux, fanfan38

Si tu supprimes une ligne, tu supprimes toute la ligne. Donc pas besoin de colonne début ou de fin.

Teste cette macro:

Il repère la colonne "Traitement incendiaire" et la colonne "NBI"
Si elles existent, elle boucle sur la colonne "Traitement incendiaire" de la dernière ligne non vide jusqu'à la deuxième ( elle contient plus de lignes non vides que la colonne "NBI").
Si la cellule de la colonne "NBI" correspondante est vide, la ligne est supprimée.

Code:
Sub Supp_Ligne()

Dim k As Long
Dim C As Range, C1 As Range

Set C = Range("A1:IV1").Find("NBI", lookat:=xlWhole)
Set C1 = Range("A1:IV1").Find("Traitement indiciaire", lookat:=xlWhole)

Application.ScreenUpdating = False
  If Not C Is Nothing And Not C1 Is Nothing Then
     For k = Cells(65536, C1.Column).End(xlUp).Row To 2 Step -1
         If Cells(k, C.Column) = "" Then Rows(k).Delete
     Next
  End If
Application.ScreenUpdating = True

End Sub


Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 688
Messages
2 090 961
Membres
104 710
dernier inscrit
TomCallhagan