Supprimer plusieurs lignes avec condition depuis un bouton
Résolu
niksi56
Messages postés
2
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un tableau d'environ 400 lignes et je voudrais supprimer toutes les lignes dont la case en colonne N est vide.
Je voudrais faire cela depuis un bouton situé sur ma page Excel.
Pour l'instant j'ai tester ça mais sa ne marche pas :
i = 1
Sheets("test300").Select
While Not Range("N" & i & "").Value = 0
Rows(ligne).Delete
i = i + 1
Wend
J'ai également testé ça :
If Cells(ligne, N).Text() = "" Then
Rows(ligne).Delete
ligne = ligne - 1
End If
Je débute sur les macros.
Merci de votre aide
J'ai un tableau d'environ 400 lignes et je voudrais supprimer toutes les lignes dont la case en colonne N est vide.
Je voudrais faire cela depuis un bouton situé sur ma page Excel.
Pour l'instant j'ai tester ça mais sa ne marche pas :
i = 1
Sheets("test300").Select
While Not Range("N" & i & "").Value = 0
Rows(ligne).Delete
i = i + 1
Wend
J'ai également testé ça :
If Cells(ligne, N).Text() = "" Then
Rows(ligne).Delete
ligne = ligne - 1
End If
Je débute sur les macros.
Merci de votre aide
A voir également:
- Supprimer plusieurs lignes avec condition depuis un bouton
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Excel cellule couleur si condition texte - Guide
- Impossible de supprimer un fichier - Guide
- Supprimer pub youtube - Accueil - Streaming
4 réponses
bonjour,
le principe de base dans la suppression de ligne par macro est de commencer par la dernière ligne, et remonter à la première, afin de ne pas laisser de lignes en route.
Voici une macro qui devrait fonctionner :
Cordialement.
le principe de base dans la suppression de ligne par macro est de commencer par la dernière ligne, et remonter à la première, afin de ne pas laisser de lignes en route.
Voici une macro qui devrait fonctionner :
Sub SupprLignes()
dim derligne As Integer
dim numligne As Integer
derligne = Sheets("test300").Cells(Rows.Count, 14).End(xlUp).Row
For numligne = derligne To 2 Step - 1
If IsEmpty(Cells(numligne, 14)) Then
Rows(numligne).Select
Selection.entireRow.Delete
End If
Next
End sub
Cordialement.
salut
je t'ai fait une macro basique à adapter ligne par ligne
attention si tu a fusionné des lignes il masquera les deux
Sub masque()
'Masque les lignes 1 si la case N1 est égal à zéro
If Range("N1") = "0" Then
Rows("1").Select
Selection.EntireRow.Hidden = True
End If
'Affiche les lignes 1 si la case N1 n'est pas égal à zéro
If Range("N1") > "0" Then
Rows("1").Select
Selection.EntireRow.Hidden = False
End If
voila en espérant que cela t'ira bonne journée a toi
je t'ai fait une macro basique à adapter ligne par ligne
attention si tu a fusionné des lignes il masquera les deux
Sub masque()
'Masque les lignes 1 si la case N1 est égal à zéro
If Range("N1") = "0" Then
Rows("1").Select
Selection.EntireRow.Hidden = True
End If
'Affiche les lignes 1 si la case N1 n'est pas égal à zéro
If Range("N1") > "0" Then
Rows("1").Select
Selection.EntireRow.Hidden = False
End If
voila en espérant que cela t'ira bonne journée a toi
Bonjour
Je viens de modifier un petit peux ma demande, j'ai trouver une solution pour remplacer les cellules vide pas un 0, et j'ai donc trouver une macro qui marche presque bien.
Dim rcel As Range
Range("N2").Select
Selection.CurrentRegion.Select
For Each rcel In Selection
If rcel.Text = 0 Then
rcel.EntireRow.Delete
End If
Next rcel
Le seul soucis c'est que si la ligne 3 est vide, elle est bien supprimée, et donc la ligne 4 devient 3, donc celle-ci ne passe pas dans ma macro et ne peux donc pas être supprimé.
Merci
Je viens de modifier un petit peux ma demande, j'ai trouver une solution pour remplacer les cellules vide pas un 0, et j'ai donc trouver une macro qui marche presque bien.
Dim rcel As Range
Range("N2").Select
Selection.CurrentRegion.Select
For Each rcel In Selection
If rcel.Text = 0 Then
rcel.EntireRow.Delete
End If
Next rcel
Le seul soucis c'est que si la ligne 3 est vide, elle est bien supprimée, et donc la ligne 4 devient 3, donc celle-ci ne passe pas dans ma macro et ne peux donc pas être supprimé.
Merci
Bonjour,
Peut-^tre + simple
https://excel.developpez.com/faq/?page=Feuille#SupprimeCellLigneVide
Michel
Peut-^tre + simple
Sub Supprimer_si_vide()
Dim Ligne As Long
On Error Resume Next
With ActiveSheet
Ligne = .UsedRange.Rows.Count
.Range("N1:N" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub
https://excel.developpez.com/faq/?page=Feuille#SupprimeCellLigneVide
Michel