je souhaite supprimer une ligne donnée ( ex : ligne 5) si toutes les cellules de la ligne 5 sont vides.
je ne veux intervenir que sur une ligne donnée ;, en l’occurrence la ligne 5 dans l'exemple.
je vous joins un fichier exemple
merci de votre aide pour une question certainement très simple à résoudre
Re : suppression de la ligne (x) si toutes les cellules de la ligne (x) ont vides
Bonsoir à tous
khephrens
Essaies ceci
(test ok ta PJ sur mon PC)
Code:
Private Sub CommandButton2_Click()
Dim c As Range
For Each c In Range(Cells(1, "A"), Cells(Rows.Count, "A").End(3))
If Application.CountBlank(c.Resize(, 11)) = 11 Then
c.EntireRow.Delete
End If
Next
End Sub
EDITION: Bah, ça alors bhbh t'es pas devant France 2!!
je te rappelle que la condition était:
si les cellules sont vides
pas
si le nombre total de valeurs dans les cellules est égal à zéro
gnark, gnark
Re : suppression de la ligne (x) si toutes les cellules de la ligne (x) ont vides
bonsoir
merci bcp les deux solutions sont parfaites. si l'un ou l'autre pouviez me mettre des commentaires sur les macro cela m’aiderait à me former et aller plus loin sans vous importuner sourire!!
en tout cas vous êtes des pros!
C'était juste un Private Joke vers J-M...
Car dans la vrai vie, à moins de faire des codes tarabiscotés, on supprime en général les lignes du bas vers le haut...
Pour mon code,
Application.CountA correspond à la fonction NBVAL d'une feuille Excel. Donc, si le nombre de cellules non vides (ou pleines) est égal à 0, on supprime
Re : suppression de la ligne (x) si toutes les cellules de la ligne (x) ont vides
Re
khephrens
Ton titre disait: suppression de la ligne (x) si toutes les cellules de la ligne (x) ont vides Ce qui veut logiquement dire que ce n'est pas toujours la même ligne....
(d’où ma boucle qui parcoure la colonne)
CountBlank veut dire NB.VIDE compte les cellules vides d'une plage.
bhbh
Et depuis quand, on fait des suppressions de ligne en commençant par le haut?????
Re : suppression de la ligne (x) si toutes les cellules de la ligne (x) ont vides
Bonsoir à Tous
Avec un messageBox pour la confirmation de la suppression de la ligne N°5
Code:
Sub efface()
If Application.CountA(Range("A5:K5")) = 0 Then
If MsgBox("Opération irréversible. Souhaitez-vous continuez ?", vbQuestion + vbYesNo, "QUESTION ...") = vbYes Then
MsgBox "Supression de la ligne N°5"
Rows(5).Delete
Else
Exit Sub
End If
End If
End Sub