Suppression plage dans tableau si cel = " "
sambrero
-
Lepicipaska -
Lepicipaska -
Bonjour,
Je suis sous excel 97 et cette macro ci-dessous ne fonctionne pas chez moi
Est-ce normal ?
Je verrai votre réponse demain si je ne la vois pas ce soir. Ne vous inquiétez pas de mon silence alors !
Sub Macro2()
Dim Cel_vide As Range
Dim ad_cel As Integer
For Each Cel_vide In Range("J6:N2777")
If Cel_vide.Value = "" Then
ad_cel = Cel_vide.Row
Rows(ad_cel).Delete
End If
Next Cel_vide
End Sub
Je suis sous excel 97 et cette macro ci-dessous ne fonctionne pas chez moi
Est-ce normal ?
Je verrai votre réponse demain si je ne la vois pas ce soir. Ne vous inquiétez pas de mon silence alors !
Sub Macro2()
Dim Cel_vide As Range
Dim ad_cel As Integer
For Each Cel_vide In Range("J6:N2777")
If Cel_vide.Value = "" Then
ad_cel = Cel_vide.Row
Rows(ad_cel).Delete
End If
Next Cel_vide
End Sub
A voir également:
- Suppression plage dans tableau si cel = " "
- Tableau word - Guide
- Forcer suppression fichier - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
5 réponses
Bonsoir,
Une suppression de ligne commence de la dernière ligne à la 1ère...
Dans ton code, tu vérifies environ 13860 cellules......
Veux-tu une suppression de ligne dès qu'il y a une cellule vide dans ladite ligne, ou si une cellule de la colonne J est vide?
Dans le 1er cas, tu peux essayer ce code :
si ce n'est que pour la colonne J, tu peux essayer ainsi :
Bonne soirée
Une suppression de ligne commence de la dernière ligne à la 1ère...
Dans ton code, tu vérifies environ 13860 cellules......
Veux-tu une suppression de ligne dès qu'il y a une cellule vide dans ladite ligne, ou si une cellule de la colonne J est vide?
Dans le 1er cas, tu peux essayer ce code :
Sub suppr() Dim Cel As Range Dim DerLig As Long, I As Long Application.ScreenUpdating = False DerLig = Cells(Rows.Count, "J").End(xlUp).Row For I = DerLig To 6 Step -1 If Application.CountA(Cells(I, "J").Resize(1, 5)) <> 5 Then Rows(I).Delete Next I End Sub
si ce n'est que pour la colonne J, tu peux essayer ainsi :
Sub suppr_col_J() Dim DerLig As Long Dim Plg As Range Application.ScreenUpdating = False DerLig = Cells(Rows.Count, "J").End(xlUp).Row Set Plg = Range("J6:J" & DerLig) Plg.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Bonne soirée
Bonsoir,
de retour ce soir.
Merci de votre aide, cependant :
J'aimerais que dans la plage de données J6K6L6M6N6, si cellule vide (J6 ou K6 ou L6 ou M6 ou N6), alors il supprime uniquement J6K6L6M6N6 et pas toute la ligne entière.(row 6)
Et qu'il vérifie toutes les plages suivantes jusqu'à J2777K2777L2777M2777N2777
et qu'il fasse de même.
C'est ce que je croyais avoir avec mon premier code.
J'ai essayé les deux vôtres, mais ça me laisse des plages avec des chiffres et des cellules vides associés. de plus, ça touche également à des données qui sont en colonnes ABCDE.
Bonne soirée
de retour ce soir.
Merci de votre aide, cependant :
J'aimerais que dans la plage de données J6K6L6M6N6, si cellule vide (J6 ou K6 ou L6 ou M6 ou N6), alors il supprime uniquement J6K6L6M6N6 et pas toute la ligne entière.(row 6)
Et qu'il vérifie toutes les plages suivantes jusqu'à J2777K2777L2777M2777N2777
et qu'il fasse de même.
C'est ce que je croyais avoir avec mon premier code.
J'ai essayé les deux vôtres, mais ça me laisse des plages avec des chiffres et des cellules vides associés. de plus, ça touche également à des données qui sont en colonnes ABCDE.
Bonne soirée
Re-,
En lieu et place de la ligne "Rows(I).Delete", tu peux remplacer par ceci :
Par contre, si les cellules comportent des formules, il va falloir opérer autrement....
Ou si tes données proviennent d'une extraction quelconque, il se peut qu'une cellule apparemment vide, ne le soit pas au vu d'Excel...
Donc si cela ne fonctionne toujours pas, précise un peu....
Bonne nuit
En lieu et place de la ligne "Rows(I).Delete", tu peux remplacer par ceci :
Cells(I, "J").Resize(1, 5).Delete Shift:=xlUp
Par contre, si les cellules comportent des formules, il va falloir opérer autrement....
Ou si tes données proviennent d'une extraction quelconque, il se peut qu'une cellule apparemment vide, ne le soit pas au vu d'Excel...
Donc si cela ne fonctionne toujours pas, précise un peu....
Bonne nuit
Bonjour,
La nuit a été bonne merci.
"En lieu et place de la ligne "Rows(I).Delete", tu peux remplacer par ceci :
Cells(I, "J").Resize(1, 5).Delete Shift:=xlUp"
C'est ce que je viens de faire. Résultat partiellement satisfaisant. Je m'explique :
Mes données qui étaient complètes en JKLMN sont bien remontées à partir de Range("J6:N6") mais les lignes qui avaient des cellules vides n'ont pas été supprimées.
Merci à vous et bon appétit.
La nuit a été bonne merci.
"En lieu et place de la ligne "Rows(I).Delete", tu peux remplacer par ceci :
Cells(I, "J").Resize(1, 5).Delete Shift:=xlUp"
C'est ce que je viens de faire. Résultat partiellement satisfaisant. Je m'explique :
Mes données qui étaient complètes en JKLMN sont bien remontées à partir de Range("J6:N6") mais les lignes qui avaient des cellules vides n'ont pas été supprimées.
Merci à vous et bon appétit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question