Supprimer ligne si cellule vide (pas ligne entière mais celle du tableau)

Bonjour,

Je souhaiterais supprimer une ligne (entre A2 et E12), les seules formule VBA que je trouve on supprime la ligne entière.

Donc si dans la colonne C, une ligne est vide, alors supprimer la ligne du tableau.

Mais je ne veux pas faire supprimer la ligne entière car il y a des données en K donc la ligne ne doit pas être supprimé.

Merci par avance.

17aide1.xlsx (9.96 Ko)

Bonjour,

J'aimerais clarifier quelques points avec vous avant de réfléchir à des solutions:

Pourquoi passer par du VBA? Il est possible de masquer/supprimer ces lignes autrement, avec les fonctions intégrées d'Excel.

La colonne K n'est pas liée au reste du tableau? Ca veut dire que vous stockez plusieurs tableaux dans une même feuille?

Quand vous parlez de tableau, on est d'accord que comme dans l'exemple, il ne s'agit pas d'un tableau nommé?

Sinon en VBA je pense que ça ressemblerait à quelque chose comme ça:

Range("A5:E5").Delete xlShiftUp

Ce qui correspond à supprimer la plage A5:E5 en décalant vers le haut les cellules en dessous.

Bonjour
Voici une solution après avoir défini la zone A1:E12 en tableau structuré.
Si j'ai bien compris, il ne faut pas toucher à la colonne K.
Cdt
Papy Henri

28aidevbaj-1.xlsm (16.47 Ko)

Bonjour,

Le plus simple est d'utiliser les tableaux structurés (voir ICI pour les codes)

Pour transformer ta plage en Tableau Structuré, tu sélectionnes la cellule A1, Ruban "Insertion", et tu sélectionnes "Tableau"

Ta plage va être automatiquement sélectionnée (tu vérifies la cohérence), et ton tableau va se nommer "Tableau1" (puis 2, 3.. en fonction du nombre de TS que tu vas insérer dans ton classeur)

Et avec ce code, tu supprimes les lignes du tableau si les cellules colonne D sont vides...

Sub Supp_Vide()
Dim TS As ListObject
Dim I As Long
Set TS = Range("Tableau1").ListObject
For I = TS.ListRows.Count To 1 Step -1
    If TS.DataBodyRange(I, "D") = "" Then TS.ListRows(I).Delete
Next I
End Sub

Le fichier :

29aide1-v1.xlsm (17.34 Ko)

bonjour,

Sub teste()
     With Sheets("feuil1").Range("A1").CurrentRegion     'votre plage
          If .Parent.AutoFilterMode Then .Parent.AutoFilterMode = False     'RAZ autofilter
          .AutoFilter 4, ""     'autofilter 4ième colonne, cellules vides
          If .Columns(4).SpecialCells(xlVisible) > 1 Then     's'il y a des cellules vides
               .EntireColumn.Hidden = False     'toutes les colonnes doivent être visible
               .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlVisible).Delete Shift:=xlUp
          End If
          .AutoFilter
     End With
End Sub
Rechercher des sujets similaires à "supprimer ligne vide pas entiere celle tableau"