En cherchant dans excelabo, j'ai trouvé le code suivant :
Sub toto()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
cherché = Application.Find("toto", Cells(r, 3))
If Not (IsError(cherché)) Then Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Code qui permet de masquer les lignes qui ont toto dans la colonne 3
Mes questions :
- quel est le code pour supprimer les lignes et non les masquer
- comment faire pour que la boucle commence à ligne 2 ?
Mon objectif est de supprimer toutes les lignes dont la valeur est
différente du chiffre zéro, la première ligne étant le titre.
Sub test() Set Mazone = ActiveSheet.UsedRange For Each Varcell In Mazone If Varcell.Value = 0 Then Cells(Varcell.Row, Mazone.Column).Resize(1, Mazone.Columns.Count).ClearContents End If Next ActiveSheet.UsedRange.Sort Key1:Îlls(Mazone.Row, Mazone.Column) End Sub
Cette macro detruit la ligne dès qu'elle trouve une cellule vide ou egale à zero !
Ca veut dire quoi une ligne = 0 ? La ligne est vide ? une cellule est vide ? elle contient la valeur 0 ? A priori, la ligne de tritre ne peut pas contenir zero ou etre vide, si ce sont les titres ? donc pas besoin de commencer en ligne 2.
Bonsoir,
Ce code peut fonctionner :
Sub test()
Set Mazone = ActiveSheet.UsedRange
For Each Varcell In Mazone
If Varcell.Value = 0 Then
Cells(Varcell.Row, Mazone.Column).Resize(1,
Mazone.Columns.Count).ClearContents
End If
Next
ActiveSheet.UsedRange.Sort Key1:Îlls(Mazone.Row, Mazone.Column)
End Sub
Cette macro detruit la ligne dès qu'elle trouve une cellule vide ou egale à
zero !
Ca veut dire quoi une ligne = 0 ?
La ligne est vide ? une cellule est vide ? elle contient la valeur 0 ?
A priori, la ligne de tritre ne peut pas contenir zero ou etre vide, si ce
sont les titres ? donc pas besoin de commencer en ligne 2.
Sub test() Set Mazone = ActiveSheet.UsedRange For Each Varcell In Mazone If Varcell.Value = 0 Then Cells(Varcell.Row, Mazone.Column).Resize(1, Mazone.Columns.Count).ClearContents End If Next ActiveSheet.UsedRange.Sort Key1:Îlls(Mazone.Row, Mazone.Column) End Sub
Cette macro detruit la ligne dès qu'elle trouve une cellule vide ou egale à zero !
Ca veut dire quoi une ligne = 0 ? La ligne est vide ? une cellule est vide ? elle contient la valeur 0 ? A priori, la ligne de tritre ne peut pas contenir zero ou etre vide, si ce sont les titres ? donc pas besoin de commencer en ligne 2.
MichDenis
'---------------------------- Sub toto() Dim LastLigne As Long, adr As String Dim C As Range, F As Range, G As Range With Worksheets("Feuil1") ' à déterminer LastLigne = .Range("C65536").End(xlUp).Row With .Range("C2:C" & LastLigne) Set F = .Find("toto", , xlFormulas, xlPart) If Not F Is Nothing Then adr = F.Address Application.ScreenUpdating = False Do While Not F Is Nothing And F.Address = adr Set G = F Set F = .FindNext(F) G.EntireRow.Delete xlUp Loop End If End With End With End Sub '----------------------------
"Bruno RCSC" a écrit dans le message de news: 455cd9bc$0$5081$ Bonsoir,
Win XP - Excel 2002
En cherchant dans excelabo, j'ai trouvé le code suivant : Sub toto() For Each ligne In ActiveSheet.UsedRange.Rows r = ligne.Row cherché = Application.Find("toto", Cells(r, 3)) If Not (IsError(cherché)) Then Cells(r, 3).EntireRow.Hidden = True Next End Sub
Code qui permet de masquer les lignes qui ont toto dans la colonne 3
Mes questions : - quel est le code pour supprimer les lignes et non les masquer - comment faire pour que la boucle commence à ligne 2 ? Mon objectif est de supprimer toutes les lignes dont la valeur est différente du chiffre zéro, la première ligne étant le titre.
Merci pour votre aide.
BH
'----------------------------
Sub toto()
Dim LastLigne As Long, adr As String
Dim C As Range, F As Range, G As Range
With Worksheets("Feuil1") ' à déterminer
LastLigne = .Range("C65536").End(xlUp).Row
With .Range("C2:C" & LastLigne)
Set F = .Find("toto", , xlFormulas, xlPart)
If Not F Is Nothing Then
adr = F.Address
Application.ScreenUpdating = False
Do While Not F Is Nothing And F.Address = adr
Set G = F
Set F = .FindNext(F)
G.EntireRow.Delete xlUp
Loop
End If
End With
End With
End Sub
'----------------------------
"Bruno RCSC" <ats.ccs@wanadoo.fr> a écrit dans le message de news:
455cd9bc$0$5081$ba4acef3@news.orange.fr...
Bonsoir,
Win XP - Excel 2002
En cherchant dans excelabo, j'ai trouvé le code suivant :
Sub toto()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
cherché = Application.Find("toto", Cells(r, 3))
If Not (IsError(cherché)) Then Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Code qui permet de masquer les lignes qui ont toto dans la colonne 3
Mes questions :
- quel est le code pour supprimer les lignes et non les masquer
- comment faire pour que la boucle commence à ligne 2 ?
Mon objectif est de supprimer toutes les lignes dont la valeur est
différente du chiffre zéro, la première ligne étant le titre.
'---------------------------- Sub toto() Dim LastLigne As Long, adr As String Dim C As Range, F As Range, G As Range With Worksheets("Feuil1") ' à déterminer LastLigne = .Range("C65536").End(xlUp).Row With .Range("C2:C" & LastLigne) Set F = .Find("toto", , xlFormulas, xlPart) If Not F Is Nothing Then adr = F.Address Application.ScreenUpdating = False Do While Not F Is Nothing And F.Address = adr Set G = F Set F = .FindNext(F) G.EntireRow.Delete xlUp Loop End If End With End With End Sub '----------------------------
"Bruno RCSC" a écrit dans le message de news: 455cd9bc$0$5081$ Bonsoir,
Win XP - Excel 2002
En cherchant dans excelabo, j'ai trouvé le code suivant : Sub toto() For Each ligne In ActiveSheet.UsedRange.Rows r = ligne.Row cherché = Application.Find("toto", Cells(r, 3)) If Not (IsError(cherché)) Then Cells(r, 3).EntireRow.Hidden = True Next End Sub
Code qui permet de masquer les lignes qui ont toto dans la colonne 3
Mes questions : - quel est le code pour supprimer les lignes et non les masquer - comment faire pour que la boucle commence à ligne 2 ? Mon objectif est de supprimer toutes les lignes dont la valeur est différente du chiffre zéro, la première ligne étant le titre.
Merci pour votre aide.
BH
JB
Bonjour,
For Each c In Range([B65000].End(xlUp), "B2") If c.Value <> 0 Then c.EntireRow.Delete Next c
Cordialement JB
Bonsoir,
Win XP - Excel 2002
En cherchant dans excelabo, j'ai trouvé le code suivant : Sub toto() For Each ligne In ActiveSheet.UsedRange.Rows r = ligne.Row cherché = Application.Find("toto", Cells(r, 3)) If Not (IsError(cherché)) Then Cells(r, 3).EntireRow.Hidden = True Next End Sub
Code qui permet de masquer les lignes qui ont toto dans la colonne 3
Mes questions : - quel est le code pour supprimer les lignes et non les masquer - comment faire pour que la boucle commence à ligne 2 ? Mon objectif est de supprimer toutes les lignes dont la valeur est différente du chiffre zéro, la première ligne étant le titre.
Merci pour votre aide.
BH
Bonjour,
For Each c In Range([B65000].End(xlUp), "B2")
If c.Value <> 0 Then c.EntireRow.Delete
Next c
Cordialement JB
Bonsoir,
Win XP - Excel 2002
En cherchant dans excelabo, j'ai trouvé le code suivant :
Sub toto()
For Each ligne In ActiveSheet.UsedRange.Rows
r = ligne.Row
cherché = Application.Find("toto", Cells(r, 3))
If Not (IsError(cherché)) Then Cells(r, 3).EntireRow.Hidden = True
Next
End Sub
Code qui permet de masquer les lignes qui ont toto dans la colonne 3
Mes questions :
- quel est le code pour supprimer les lignes et non les masquer
- comment faire pour que la boucle commence à ligne 2 ?
Mon objectif est de supprimer toutes les lignes dont la valeur est
différente du chiffre zéro, la première ligne étant le titre.
For Each c In Range([B65000].End(xlUp), "B2") If c.Value <> 0 Then c.EntireRow.Delete Next c
Cordialement JB
Bonsoir,
Win XP - Excel 2002
En cherchant dans excelabo, j'ai trouvé le code suivant : Sub toto() For Each ligne In ActiveSheet.UsedRange.Rows r = ligne.Row cherché = Application.Find("toto", Cells(r, 3)) If Not (IsError(cherché)) Then Cells(r, 3).EntireRow.Hidden = True Next End Sub
Code qui permet de masquer les lignes qui ont toto dans la colonne 3
Mes questions : - quel est le code pour supprimer les lignes et non les masquer - comment faire pour que la boucle commence à ligne 2 ? Mon objectif est de supprimer toutes les lignes dont la valeur est différente du chiffre zéro, la première ligne étant le titre.
Merci pour votre aide.
BH
Garette
Bonjour,
Petite erreur dans ma macro, elle faisait l'inverse (voir plus bas).
MAIS ca sert à quoi de supprimer toutes les cellules differentes de zero ?? Autant tout efffacer... sauf ligne de titres. Avec le code ci-dessous :
Sub nettoyage() ActiveSheet.UsedRange.Offset(1, 0).Delete End Sub
------------------ Sub test() Set Mazone = ActiveSheet.UsedRange For Each Varcell In Mazone If Varcell.Value <> 0 Then Cells(Varcell.Row, Mazone.Column).Resize(1, Mazone.Columns.Count).ClearContents End If Next End Sub
Bonjour,
Petite erreur dans ma macro, elle faisait l'inverse (voir plus bas).
MAIS ca sert à quoi de supprimer toutes les cellules differentes de zero ??
Autant tout efffacer... sauf ligne de titres.
Avec le code ci-dessous :
Sub nettoyage()
ActiveSheet.UsedRange.Offset(1, 0).Delete
End Sub
------------------
Sub test()
Set Mazone = ActiveSheet.UsedRange
For Each Varcell In Mazone
If Varcell.Value <> 0 Then
Cells(Varcell.Row, Mazone.Column).Resize(1,
Mazone.Columns.Count).ClearContents
End If
Next
End Sub
Petite erreur dans ma macro, elle faisait l'inverse (voir plus bas).
MAIS ca sert à quoi de supprimer toutes les cellules differentes de zero ?? Autant tout efffacer... sauf ligne de titres. Avec le code ci-dessous :
Sub nettoyage() ActiveSheet.UsedRange.Offset(1, 0).Delete End Sub
------------------ Sub test() Set Mazone = ActiveSheet.UsedRange For Each Varcell In Mazone If Varcell.Value <> 0 Then Cells(Varcell.Row, Mazone.Column).Resize(1, Mazone.Columns.Count).ClearContents End If Next End Sub
MichDenis
| For Each c In Range([B65000].End(xlUp), "B2") | If c.Value <> 0 Then c.EntireRow.Delete | Next c
Es-tu vraiment sûr que ça marche ?
| For Each c In Range([B65000].End(xlUp), "B2")
| If c.Value <> 0 Then c.EntireRow.Delete
| Next c
| For Each c In Range([B65000].End(xlUp), "B2") | If c.Value <> 0 Then c.EntireRow.Delete | Next c
Es-tu vraiment sûr que ça marche ?
JB
Bonjour,
Différent de 0 dans la colonne 3. Il y a sans doute des infos dans les autres colonnes.
JB
Bonjour,
Petite erreur dans ma macro, elle faisait l'inverse (voir plus bas).
MAIS ca sert à quoi de supprimer toutes les cellules differentes de zer o ?? Autant tout efffacer... sauf ligne de titres. Avec le code ci-dessous :
Sub nettoyage() ActiveSheet.UsedRange.Offset(1, 0).Delete End Sub
------------------ Sub test() Set Mazone = ActiveSheet.UsedRange For Each Varcell In Mazone If Varcell.Value <> 0 Then Cells(Varcell.Row, Mazone.Column).Resize(1, Mazone.Columns.Count).ClearContents End If Next End Sub
Bonjour,
Différent de 0 dans la colonne 3. Il y a sans doute des infos dans les
autres colonnes.
JB
Bonjour,
Petite erreur dans ma macro, elle faisait l'inverse (voir plus bas).
MAIS ca sert à quoi de supprimer toutes les cellules differentes de zer o ??
Autant tout efffacer... sauf ligne de titres.
Avec le code ci-dessous :
Sub nettoyage()
ActiveSheet.UsedRange.Offset(1, 0).Delete
End Sub
------------------
Sub test()
Set Mazone = ActiveSheet.UsedRange
For Each Varcell In Mazone
If Varcell.Value <> 0 Then
Cells(Varcell.Row, Mazone.Column).Resize(1,
Mazone.Columns.Count).ClearContents
End If
Next
End Sub
Différent de 0 dans la colonne 3. Il y a sans doute des infos dans les autres colonnes.
JB
Bonjour,
Petite erreur dans ma macro, elle faisait l'inverse (voir plus bas).
MAIS ca sert à quoi de supprimer toutes les cellules differentes de zer o ?? Autant tout efffacer... sauf ligne de titres. Avec le code ci-dessous :
Sub nettoyage() ActiveSheet.UsedRange.Offset(1, 0).Delete End Sub
------------------ Sub test() Set Mazone = ActiveSheet.UsedRange For Each Varcell In Mazone If Varcell.Value <> 0 Then Cells(Varcell.Row, Mazone.Column).Resize(1, Mazone.Columns.Count).ClearContents End If Next End Sub
Garette
Bonjour,
Exact, ma macro ne teste pas que la colonne 3. Celle-ci le fait. Elle efface les lignes <> 0 et fait un tri à la fin pour rassembler tout le monde. Avec Delete, j'ai plus de mal...
Sub test() Set MesDonnees = ActiveSheet.UsedRange Set MaZone = MesDonnees.Offset(1, 2).Resize(MesDonnees.Rows.Count - 1, 1)
For Each VarCell In MaZone If VarCell.Value <> 0 Then _ VarCell.Offset(0, -2).Resize(1, MesDonnees.Columns.Count).ClearContents Next MesDonnees.Sort Key1:Îlls(MesDonnees.Row, MesDonnees.Column), Header:=xlYes End Sub
Bonjour,
Exact, ma macro ne teste pas que la colonne 3.
Celle-ci le fait.
Elle efface les lignes <> 0 et fait un tri à la fin pour rassembler tout le
monde.
Avec Delete, j'ai plus de mal...
Sub test()
Set MesDonnees = ActiveSheet.UsedRange
Set MaZone = MesDonnees.Offset(1, 2).Resize(MesDonnees.Rows.Count - 1, 1)
For Each VarCell In MaZone
If VarCell.Value <> 0 Then _
VarCell.Offset(0, -2).Resize(1, MesDonnees.Columns.Count).ClearContents
Next
MesDonnees.Sort Key1:Îlls(MesDonnees.Row, MesDonnees.Column),
Header:=xlYes
End Sub
Exact, ma macro ne teste pas que la colonne 3. Celle-ci le fait. Elle efface les lignes <> 0 et fait un tri à la fin pour rassembler tout le monde. Avec Delete, j'ai plus de mal...
Sub test() Set MesDonnees = ActiveSheet.UsedRange Set MaZone = MesDonnees.Offset(1, 2).Resize(MesDonnees.Rows.Count - 1, 1)
For Each VarCell In MaZone If VarCell.Value <> 0 Then _ VarCell.Offset(0, -2).Resize(1, MesDonnees.Columns.Count).ClearContents Next MesDonnees.Sort Key1:Îlls(MesDonnees.Row, MesDonnees.Column), Header:=xlYes End Sub
JB
http://cjoint.com/?lrqgJRaBkD
For i = [b65000].End(xlUp).Row To 2 Step -1 If Cells(i, 3) <> 0 Then Cells(i, 3).EntireRow.Delete Next i
JB
Bonjour,
Exact, ma macro ne teste pas que la colonne 3. Celle-ci le fait. Elle efface les lignes <> 0 et fait un tri à la fin pour rassembler tou t le monde. Avec Delete, j'ai plus de mal...
Sub test() Set MesDonnees = ActiveSheet.UsedRange Set MaZone = MesDonnees.Offset(1, 2).Resize(MesDonnees.Rows.Count - 1, 1)
For Each VarCell In MaZone If VarCell.Value <> 0 Then _ VarCell.Offset(0, -2).Resize(1, MesDonnees.Columns.Count).ClearContents Next MesDonnees.Sort Key1:Îlls(MesDonnees.Row, MesDonnees.Column), Header:=xlYes End Sub
http://cjoint.com/?lrqgJRaBkD
For i = [b65000].End(xlUp).Row To 2 Step -1
If Cells(i, 3) <> 0 Then Cells(i, 3).EntireRow.Delete
Next i
JB
Bonjour,
Exact, ma macro ne teste pas que la colonne 3.
Celle-ci le fait.
Elle efface les lignes <> 0 et fait un tri à la fin pour rassembler tou t le
monde.
Avec Delete, j'ai plus de mal...
Sub test()
Set MesDonnees = ActiveSheet.UsedRange
Set MaZone = MesDonnees.Offset(1, 2).Resize(MesDonnees.Rows.Count - 1, 1)
For Each VarCell In MaZone
If VarCell.Value <> 0 Then _
VarCell.Offset(0, -2).Resize(1, MesDonnees.Columns.Count).ClearContents
Next
MesDonnees.Sort Key1:=Cells(MesDonnees.Row, MesDonnees.Column),
Header:=xlYes
End Sub
For i = [b65000].End(xlUp).Row To 2 Step -1 If Cells(i, 3) <> 0 Then Cells(i, 3).EntireRow.Delete Next i
JB
Bonjour,
Exact, ma macro ne teste pas que la colonne 3. Celle-ci le fait. Elle efface les lignes <> 0 et fait un tri à la fin pour rassembler tou t le monde. Avec Delete, j'ai plus de mal...
Sub test() Set MesDonnees = ActiveSheet.UsedRange Set MaZone = MesDonnees.Offset(1, 2).Resize(MesDonnees.Rows.Count - 1, 1)
For Each VarCell In MaZone If VarCell.Value <> 0 Then _ VarCell.Offset(0, -2).Resize(1, MesDonnees.Columns.Count).ClearContents Next MesDonnees.Sort Key1:Îlls(MesDonnees.Row, MesDonnees.Column), Header:=xlYes End Sub
Merci à tous pour votre contribution. Mon explication n'était pas assez claire, Je veux supprimer toutes les lignes d'un tableau de 8 colonnes pour lesquelles il y a la valeur zéro dans la colonne 3. La longueur du tableau est variable.
Le deuxième code de JB est parfait : For i = [C65000].End(xlUp).Row To 2 Step -1 If Cells(i, 3) <> 0 Then Cells(i, 3).EntireRow.Delete Next i
Je vais essayer de comprendre les autres propositions et celle ci ....!
Merci.
Bonsoir,
Merci à tous pour votre contribution.
Mon explication n'était pas assez claire,
Je veux supprimer toutes les lignes d'un tableau de 8 colonnes pour
lesquelles il y a la valeur zéro dans la colonne 3. La longueur du tableau
est variable.
Le deuxième code de JB est parfait :
For i = [C65000].End(xlUp).Row To 2 Step -1
If Cells(i, 3) <> 0 Then Cells(i, 3).EntireRow.Delete
Next i
Je vais essayer de comprendre les autres propositions et celle ci ....!
Merci à tous pour votre contribution. Mon explication n'était pas assez claire, Je veux supprimer toutes les lignes d'un tableau de 8 colonnes pour lesquelles il y a la valeur zéro dans la colonne 3. La longueur du tableau est variable.
Le deuxième code de JB est parfait : For i = [C65000].End(xlUp).Row To 2 Step -1 If Cells(i, 3) <> 0 Then Cells(i, 3).EntireRow.Delete Next i
Je vais essayer de comprendre les autres propositions et celle ci ....!