XL 2016 Vérifier si valeur présente et supprime ligne

Fipat

XLDnaute Occasionnel
Bonjour,

Je bloque sur un code.
je veux vérifier si en colonne B j'ai une valeur sur la dernière ligne et vérifier sur la première cellule vide de la colonne A qu'il n'y à rien.
Si c'est bien le cas je veux supprimer cette ligne.
VB:
Sub test()
Dim a$, b$
Dim X&
a = Sheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row + 1
b = Sheets("Feuil1").Cells(Rows.Count, 2).End(xlUp).Row
If a = "" And b <> "" Then
MsgBox "la ligne va être supprimée"
For X = Cells(b, 2).CurrentRegion.Rows.Count To 1 Step -1
   If Cells(X, 2).Value <> ""  And Cells(X, 1).Value = "" Then Cells(X, 1).EntireRow.Delete
Next
End Sub

Merci :)
 
Solution
avec le code proposé au post précédent, ca le fait

si tu ne veux supprimer QUE la dernière ligne (et laisser les autres lignes sans les vérifier) suffit de ne pas faire la boucle for
LastLineColB=range("B" &rows.count).end(xlup).row
if range("A" &LastLineColB)="" and range("B" &LastLineColB)<>"" then rows(LastLineColB).delete

vgendron

XLDnaute Barbatruc
Bonsoir

je ne comprend pas ce que tu souhaites faire...
sur la col B, tu vas à la fin de ton tableau, et si la col A n'est pas renseignée, alors tu supprimes la ligne
à priori ton test si a="" and b<>"" te dit bien s'il faut supprimer la ligne
mais.. pourquoi faire un for X=.. ??*
avec un fichier, ce serait aussi plus clair.. sans doute;.
 

Fipat

XLDnaute Occasionnel
Merci vgendron pour tes réponses.
Un fichier en exemple, même si celui-ci ne me semble pas explicite.
Dans cet exemple je veux supprimer la ligne 6.
Merci pour de ton intérêt à ma requête.
:)
 

Pièces jointes

  • Exemple.xlsm
    17.5 KB · Affichages: 11

vgendron

XLDnaute Barbatruc
avec le code proposé au post précédent, ca le fait

si tu ne veux supprimer QUE la dernière ligne (et laisser les autres lignes sans les vérifier) suffit de ne pas faire la boucle for
LastLineColB=range("B" &rows.count).end(xlup).row
if range("A" &LastLineColB)="" and range("B" &LastLineColB)<>"" then rows(LastLineColB).delete
 

Fipat

XLDnaute Occasionnel
Bonjour,

Désolé de ne pas avoir pu répondre plus tôt.
Ceci fonctionne parfaitement.
Merci.
VB:
LastLineColB=range("B" &rows.count).end(xlup).row
if range("A" &LastLineColB)="" and range("B" &LastLineColB)<>"" then rows(LastLineColB).delete
 

Discussions similaires

Réponses
1
Affichages
122