Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

supprimer des lignes sous condition

10 réponses
Avatar
gaston
bonjour !
J'ai une liste dans une feuille avec 4 colonnes A B C D. Je
voudrais qu'une macro puisse "scanner" cette liste en=20
v=E9rifiant les valeurs des colonnes C et D de telle fa=E7on =E0=20
ce que, si ces colonnes contiennent en m=EAme temps sur la=20
m=EAme ligne la valeur 0 , ladite ligne soit supprim=E9e=20
comment dois-je faire ?
merci d'avance de vos r=E9ponses

10 réponses

Avatar
ChrisV
Bonjour Gaston,

Sub supL()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows, xlPrevious).Row To 1
Step -1
If Cells(r, 3) = 0 And Cells(r, 4) = 0 Then _
Rows(r).Delete
Next r
End Sub


ChrisV


"gaston" a écrit dans le message de
news:14f3201c41985$c925d0e0$
bonjour !
J'ai une liste dans une feuille avec 4 colonnes A B C D. Je
voudrais qu'une macro puisse "scanner" cette liste en
vérifiant les valeurs des colonnes C et D de telle façon à
ce que, si ces colonnes contiennent en même temps sur la
même ligne la valeur 0 , ladite ligne soit supprimée
comment dois-je faire ?
merci d'avance de vos réponses
Avatar
ChrisV
Hum...
un peu "dangereux" si des données sont présentes dans les colonnes E:IV sur
les lignes à supprimer en A:D...
Il faudra préférer:

Sub supL()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows, xlPrevious).Row To 1
Step -1
If Cells(r, 3) = 0 And Cells(r, 4) = 0 Then _
Range("A" & r & ":D" & r).Delete shift:=xlUp
Next r
End Sub


ChrisV

"ChrisV" a écrit dans le message de
news:OD%23e%
Bonjour Gaston,

Sub supL()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows, xlPrevious).Row To
1

Step -1
If Cells(r, 3) = 0 And Cells(r, 4) = 0 Then _
Rows(r).Delete
Next r
End Sub


ChrisV


"gaston" a écrit dans le message de
news:14f3201c41985$c925d0e0$
bonjour !
J'ai une liste dans une feuille avec 4 colonnes A B C D. Je
voudrais qu'une macro puisse "scanner" cette liste en
vérifiant les valeurs des colonnes C et D de telle façon à
ce que, si ces colonnes contiennent en même temps sur la
même ligne la valeur 0 , ladite ligne soit supprimée
comment dois-je faire ?
merci d'avance de vos réponses




Avatar
gaston
Merci pour tes réponses rapides : j'apprécie beaucoup !

maintenant je vais quand même essayer de comprendre tout
ça, au lieu de recopier bêtement ;-)

-----Message d'origine-----
Bonjour Gaston,

Sub supL()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1

Step -1
If Cells(r, 3) = 0 And Cells(r, 4) = 0 Then _
Rows(r).Delete
Next r
End Sub


ChrisV


"gaston" a écrit
dans le message de

news:14f3201c41985$c925d0e0$
bonjour !
J'ai une liste dans une feuille avec 4 colonnes A B C D.
Je

voudrais qu'une macro puisse "scanner" cette liste en
vérifiant les valeurs des colonnes C et D de telle façon à
ce que, si ces colonnes contiennent en même temps sur la
même ligne la valeur 0 , ladite ligne soit supprimée
comment dois-je faire ?
merci d'avance de vos réponses


.



Avatar
gaston
j'ai essayé la macro, mais il y a un petit souci:
elle bloque sur Step erreur de compilation Sub ou
Function non définie
et je ne trouve pas d'aide suffisamment explicative...


-----Message d'origine-----
Hum...
un peu "dangereux" si des données sont présentes dans les
colonnes E:IV sur

les lignes à supprimer en A:D...
Il faudra préférer:

Sub supL()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1

Step -1
If Cells(r, 3) = 0 And Cells(r, 4) = 0 Then _
Range("A" & r & ":D" & r).Delete shift:=xlUp
Next r
End Sub


ChrisV



Avatar
ChrisV
Re,

Et comme ça ?

Sub supL()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows, _
xlPrevious).Row To 1 Step -1
If Cells(r, 3) = 0 And Cells(r, 4) = 0 Then _
Range("A" & r & ":D" & r).Delete shift:=xlUp
Next r
End Sub


ChrisV


"gaston" a écrit dans le message de
news:1342b01c4198f$95ee59e0$
j'ai essayé la macro, mais il y a un petit souci:
elle bloque sur Step erreur de compilation Sub ou
Function non définie
et je ne trouve pas d'aide suffisamment explicative...


-----Message d'origine-----
Hum...
un peu "dangereux" si des données sont présentes dans les
colonnes E:IV sur

les lignes à supprimer en A:D...
Il faudra préférer:

Sub supL()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows,
xlPrevious).Row To 1

Step -1
If Cells(r, 3) = 0 And Cells(r, 4) = 0 Then _
Range("A" & r & ":D" & r).Delete shift:=xlUp
Next r
End Sub


ChrisV



Avatar
heu...? je viens d'essayer mais je vois pas bien ce que ça
fait...en tous cas, pas ce que je voudrais:
voici un extrait de ma liste
A B C D
1 06/03/04 BALLIHAUT -130,6
2 03/04/04 BALLIHAUT -130,6
3 16/01/04 DESPERBEN 0
4 12/02/04 DESPERBEN 0
5 27/03/04 LABARERE 200 0
6 31/03/04 LABARERE -200
etc
donc dans cet exemple il faudrait que les lignes 3 et 4
soient supprimees (carrément les lignes, pas seulement les
cellules)
Avatar
gaston
en fait je n'avais pas essayé la toute première solution
et c'est celle qui convient le mieux !
merci de ton aide précieuse et excuse moi de t'avoir fait
perdre du temps
Avatar
ChrisV
Non problemo Gaston... ;-)


ChrisV


"gaston" a écrit dans le message de
news:14fb101c4199c$54f65980$
en fait je n'avais pas essayé la toute première solution
et c'est celle qui convient le mieux !
merci de ton aide précieuse et excuse moi de t'avoir fait
perdre du temps
Avatar
ChrisV
Bonjour

Pas sûr d'avoir bien saisi, mais si la condition est: "supprimer les lignes
du tableau dont le contenu de la colonne C est égal à 0:

Sub supL0()
Dim r As Long
Application.ScreenUpdating = False
On Error Resume Next
For r = Range("A:D").Find("*", [A1], , , xlByRows, _
xlPrevious).Row To 1 Step -1
If Cells(r, 3) = 0 Then _
Rows(r).Delete
Next r
End Sub


ChrisV


a écrit dans le message de
news:17b7001c41999$601053f0$
heu...? je viens d'essayer mais je vois pas bien ce que ça
fait...en tous cas, pas ce que je voudrais:
voici un extrait de ma liste
A B C D
1 06/03/04 BALLIHAUT -130,6
2 03/04/04 BALLIHAUT -130,6
3 16/01/04 DESPERBEN 0
4 12/02/04 DESPERBEN 0
5 27/03/04 LABARERE 200 0
6 31/03/04 LABARERE -200
etc
donc dans cet exemple il faudrait que les lignes 3 et 4
soient supprimees (carrément les lignes, pas seulement les
cellules)
Avatar
gee-dee-
Bonsoir,
Sub Macro1()
Range("C2").Select
'Selection.AutoFilter
Selection.AutoFilter Field:=3, Criteria1:="0"
Selection.AutoFilter Field:=4, Criteria1:="0"
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
Selection.Rows.Delete
Selection.AutoFilter
End Sub

Non ???

j'ai aidé, G&D geedee....
;-)))

"gaston" a écrit dans le message de
news:14f3201c41985$c925d0e0$
bonjour !
J'ai une liste dans une feuille avec 4 colonnes A B C D. Je
voudrais qu'une macro puisse "scanner" cette liste en
vérifiant les valeurs des colonnes C et D de telle façon à
ce que, si ces colonnes contiennent en même temps sur la
même ligne la valeur 0 , ladite ligne soit supprimée
comment dois-je faire ?
merci d'avance de vos réponses