je cherche la formule me permettant lorsque je déclenche une macro de
supprimer toutes les lignes dont le contenu dans la colonne X est différent
de Y.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
Bonjour. Essaie (avec prudence) :
Sub Test() Dim Plage As Range With ActiveSheet Set Plage = Range([X1], [Y65000].End(xlUp)) Plage.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("T1:T2") Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1) Set Plage = Plage.SpecialCells(xlCellTypeVisible) Plage.EntireRow.Delete End With End Sub
Cordialement. Daniel
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de supprimer toutes les lignes dont le contenu dans la colonne X est différent de Y.
merci pour votre aide
Bonjour.
Essaie (avec prudence) :
Sub Test()
Dim Plage As Range
With ActiveSheet
Set Plage = Range([X1], [Y65000].End(xlUp))
Plage.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("T1:T2")
Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1)
Set Plage = Plage.SpecialCells(xlCellTypeVisible)
Plage.EntireRow.Delete
End With
End Sub
Cordialement.
Daniel
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de
supprimer toutes les lignes dont le contenu dans la colonne X est différent
de Y.
Sub Test() Dim Plage As Range With ActiveSheet Set Plage = Range([X1], [Y65000].End(xlUp)) Plage.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("T1:T2") Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1) Set Plage = Plage.SpecialCells(xlCellTypeVisible) Plage.EntireRow.Delete End With End Sub
Cordialement. Daniel
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de supprimer toutes les lignes dont le contenu dans la colonne X est différent de Y.
merci pour votre aide
Benoît
Bonjour
j'ai plutot utilsé cette formule
For Each c In Range("X2:X600")
If c <> Y Then Rows(c.Row).Delete Next
mais la macro met énormément de temps à s'effectuer
de plus je suis obligé de la faire tourner plusieurs fois de suite pour avoir un résultat correct.
avez vous d'autres propositions ?
merci
"Benoît" a écrit dans le message de groupe de discussion :
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de supprimer toutes les lignes dont le contenu dans la colonne X est différent de Y.
merci pour votre aide
Bonjour
j'ai plutot utilsé cette formule
For Each c In Range("X2:X600")
If c <> Y Then Rows(c.Row).Delete
Next
mais la macro met énormément de temps à s'effectuer
de plus je suis obligé de la faire tourner plusieurs fois de suite pour
avoir un résultat correct.
avez vous d'autres propositions ?
merci
"Benoît" <benoit.trivero@orange.fr> a écrit dans le message de groupe de
discussion : et7VdasxKHA.5364@TK2MSFTNGP05.phx.gbl...
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de
supprimer toutes les lignes dont le contenu dans la colonne X est
différent de Y.
mais la macro met énormément de temps à s'effectuer
de plus je suis obligé de la faire tourner plusieurs fois de suite pour avoir un résultat correct.
avez vous d'autres propositions ?
merci
"Benoît" a écrit dans le message de groupe de discussion :
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de supprimer toutes les lignes dont le contenu dans la colonne X est différent de Y.
merci pour votre aide
Daniel.C
Oui la mienne, avec cette précision que en T1, la cellule est vide et en T2, il faut mettre la formule : =ET(X2<>Y2;X2<>"") X1 et Y1 étant censés contenir des entêtes :
Sub Test() Dim Plage As Range With ActiveSheet Set Plage = Range([X1], [Y65000].End(xlUp)) Plage.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("T1:T2") Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1) Set Plage = Plage.SpecialCells(xlCellTypeVisible) Plage.EntireRow.Delete End With End Sub
Daniel
Bonjour
j'ai plutot utilsé cette formule
For Each c In Range("X2:X600")
If c <> Y Then Rows(c.Row).Delete Next
mais la macro met énormément de temps à s'effectuer
de plus je suis obligé de la faire tourner plusieurs fois de suite pour avoir un résultat correct.
avez vous d'autres propositions ?
merci
"Benoît" a écrit dans le message de groupe de discussion :
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de supprimer toutes les lignes dont le contenu dans la colonne X est différent de Y.
merci pour votre aide
Oui la mienne, avec cette précision que en T1, la cellule est vide et
en T2, il faut mettre la formule :
=ET(X2<>Y2;X2<>"")
X1 et Y1 étant censés contenir des entêtes :
Sub Test()
Dim Plage As Range
With ActiveSheet
Set Plage = Range([X1], [Y65000].End(xlUp))
Plage.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("T1:T2")
Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1)
Set Plage = Plage.SpecialCells(xlCellTypeVisible)
Plage.EntireRow.Delete
End With
End Sub
Daniel
Bonjour
j'ai plutot utilsé cette formule
For Each c In Range("X2:X600")
If c <> Y Then Rows(c.Row).Delete
Next
mais la macro met énormément de temps à s'effectuer
de plus je suis obligé de la faire tourner plusieurs fois de suite pour avoir
un résultat correct.
avez vous d'autres propositions ?
merci
"Benoît" <benoit.trivero@orange.fr> a écrit dans le message de groupe de
discussion : et7VdasxKHA.5364@TK2MSFTNGP05.phx.gbl...
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de
supprimer toutes les lignes dont le contenu dans la colonne X est différent
de Y.
Oui la mienne, avec cette précision que en T1, la cellule est vide et en T2, il faut mettre la formule : =ET(X2<>Y2;X2<>"") X1 et Y1 étant censés contenir des entêtes :
Sub Test() Dim Plage As Range With ActiveSheet Set Plage = Range([X1], [Y65000].End(xlUp)) Plage.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("T1:T2") Set Plage = Plage.Offset(1).Resize(Plage.Rows.Count - 1) Set Plage = Plage.SpecialCells(xlCellTypeVisible) Plage.EntireRow.Delete End With End Sub
Daniel
Bonjour
j'ai plutot utilsé cette formule
For Each c In Range("X2:X600")
If c <> Y Then Rows(c.Row).Delete Next
mais la macro met énormément de temps à s'effectuer
de plus je suis obligé de la faire tourner plusieurs fois de suite pour avoir un résultat correct.
avez vous d'autres propositions ?
merci
"Benoît" a écrit dans le message de groupe de discussion :
Bonsoir,
je cherche la formule me permettant lorsque je déclenche une macro de supprimer toutes les lignes dont le contenu dans la colonne X est différent de Y.
merci pour votre aide
FdeCourt
Salut,
Comme tu supprimes des lignes, tu dois partir du bas et remonter. A chaque fois que tu supprimes une lignes, tu ne fait pas la comparaison avec la qui était originellement la suivante, puisqu'elle à pris la place de la ligne supprimé, et ne sera pas à nouveau étudié. Imaginons que tu supprime la ligne B Alors la ligne qui était C devient B B ayant déjà été instruit, Excel passera directement à la ligne C , qui était avant la suppression la ligne D Ainsi la ligne qui était originellement C ne sera pas étudiée, d'ou l'obligation de partir du bas et de remonter.
Cordialement,
F.
Salut,
Comme tu supprimes des lignes, tu dois partir du bas et remonter. A
chaque fois que tu supprimes une lignes, tu ne fait pas la comparaison
avec la qui était originellement la suivante, puisqu'elle à pris la
place de la ligne supprimé, et ne sera pas à nouveau étudié.
Imaginons que tu supprime la ligne B
Alors la ligne qui était C devient B
B ayant déjà été instruit, Excel passera directement à la ligne C , qui
était avant la suppression la ligne D
Ainsi la ligne qui était originellement C ne sera pas étudiée, d'ou
l'obligation de partir du bas et de remonter.
Comme tu supprimes des lignes, tu dois partir du bas et remonter. A chaque fois que tu supprimes une lignes, tu ne fait pas la comparaison avec la qui était originellement la suivante, puisqu'elle à pris la place de la ligne supprimé, et ne sera pas à nouveau étudié. Imaginons que tu supprime la ligne B Alors la ligne qui était C devient B B ayant déjà été instruit, Excel passera directement à la ligne C , qui était avant la suppression la ligne D Ainsi la ligne qui était originellement C ne sera pas étudiée, d'ou l'obligation de partir du bas et de remonter.