Salut Julie
Supprimer revient à effacer et trier pour regrouper les lignes pleines
ensembles
Au lieu donc de supprimer tu pourrais vider tes lignes et opérer un
tri pour regrouper les lignes restantes :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Clear
End If
Next i
End With
Rows("6:" & Range("E65000").End(xlUp).Row ).Sort Key1:=Range("E6"),
Order1:=xlAscending
De la rapidité normalement en perspective !!!!!
Dis moi !!!!!
Salut Julie
Supprimer revient à effacer et trier pour regrouper les lignes pleines
ensembles
Au lieu donc de supprimer tu pourrais vider tes lignes et opérer un
tri pour regrouper les lignes restantes :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Clear
End If
Next i
End With
Rows("6:" & Range("E65000").End(xlUp).Row ).Sort Key1:=Range("E6"),
Order1:=xlAscending
De la rapidité normalement en perspective !!!!!
Dis moi !!!!!
Salut Julie
Supprimer revient à effacer et trier pour regrouper les lignes pleines
ensembles
Au lieu donc de supprimer tu pourrais vider tes lignes et opérer un
tri pour regrouper les lignes restantes :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Clear
End If
Next i
End With
Rows("6:" & Range("E65000").End(xlUp).Row ).Sort Key1:=Range("E6"),
Order1:=xlAscending
De la rapidité normalement en perspective !!!!!
Dis moi !!!!!
Bonjour et merci pour t'intéresser à mon problème,
Effectivement cela gagne du temps => 18 secondes pour l'ancienne
macro vs 4,8 secondes pour celle-ci dans un fichier de 4000 lignes.
Cependant, j'ai fait un test en doublant le fichier et le temps
double aussi : 9,6 secondes pour 8000 lignes.
Y-a-t-il d'autres pistes à explorer ?
Julie
FFO a écrit :Salut Julie
Supprimer revient à effacer et trier pour regrouper les lignes pleines
ensembles
Au lieu donc de supprimer tu pourrais vider tes lignes et opérer un
tri pour regrouper les lignes restantes :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Clear
End If
Next i
End With
Rows("6:" & Range("E65000").End(xlUp).Row ).Sort Key1:=Range("E6"),
Order1:=xlAscending
De la rapidité normalement en perspective !!!!!
Dis moi !!!!!
Bonjour et merci pour t'intéresser à mon problème,
Effectivement cela gagne du temps => 18 secondes pour l'ancienne
macro vs 4,8 secondes pour celle-ci dans un fichier de 4000 lignes.
Cependant, j'ai fait un test en doublant le fichier et le temps
double aussi : 9,6 secondes pour 8000 lignes.
Y-a-t-il d'autres pistes à explorer ?
Julie
FFO a écrit :
Salut Julie
Supprimer revient à effacer et trier pour regrouper les lignes pleines
ensembles
Au lieu donc de supprimer tu pourrais vider tes lignes et opérer un
tri pour regrouper les lignes restantes :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Clear
End If
Next i
End With
Rows("6:" & Range("E65000").End(xlUp).Row ).Sort Key1:=Range("E6"),
Order1:=xlAscending
De la rapidité normalement en perspective !!!!!
Dis moi !!!!!
Bonjour et merci pour t'intéresser à mon problème,
Effectivement cela gagne du temps => 18 secondes pour l'ancienne
macro vs 4,8 secondes pour celle-ci dans un fichier de 4000 lignes.
Cependant, j'ai fait un test en doublant le fichier et le temps
double aussi : 9,6 secondes pour 8000 lignes.
Y-a-t-il d'autres pistes à explorer ?
Julie
FFO a écrit :Salut Julie
Supprimer revient à effacer et trier pour regrouper les lignes pleines
ensembles
Au lieu donc de supprimer tu pourrais vider tes lignes et opérer un
tri pour regrouper les lignes restantes :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Clear
End If
Next i
End With
Rows("6:" & Range("E65000").End(xlUp).Row ).Sort Key1:=Range("E6"),
Order1:=xlAscending
De la rapidité normalement en perspective !!!!!
Dis moi !!!!!
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai testé
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai testé
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai testé
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pou r
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai
testé plusieurs techniques qui fonctionnent très bien mais mon fich ier
s'alourdit (environ 30 000 lignes à terme) et cela devient très lon g
(5 secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pou r
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai
testé plusieurs techniques qui fonctionnent très bien mais mon fich ier
s'alourdit (environ 30 000 lignes à terme) et cela devient très lon g
(5 secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pou r
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai
testé plusieurs techniques qui fonctionnent très bien mais mon fich ier
s'alourdit (environ 30 000 lignes à terme) et cela devient très lon g
(5 secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai testé
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une autre
feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai testé
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une autre
feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai testé
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une autre
feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour JulieH,
Une solution possible est de supprimer le tout en une seule fois
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
Set PlageASupprimer = Nothing
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
If PlageASupprimer is Nothing Then
Set PlageASupprimer = .Rows(i)
Else
Set PlageASupprimer = Union(PlageASupprimer, .Rows(i))
End If
End If
Next i
If Not PlageASupprimer Is Nothing Then PlageASupprimer.Delete
End With
Corto
JulieH a écrit :Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai
testé plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long
(5 secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour JulieH,
Une solution possible est de supprimer le tout en une seule fois
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
Set PlageASupprimer = Nothing
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
If PlageASupprimer is Nothing Then
Set PlageASupprimer = .Rows(i)
Else
Set PlageASupprimer = Union(PlageASupprimer, .Rows(i))
End If
End If
Next i
If Not PlageASupprimer Is Nothing Then PlageASupprimer.Delete
End With
Corto
JulieH a écrit :
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai
testé plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long
(5 secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour JulieH,
Une solution possible est de supprimer le tout en une seule fois
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
Set PlageASupprimer = Nothing
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
If PlageASupprimer is Nothing Then
Set PlageASupprimer = .Rows(i)
Else
Set PlageASupprimer = Union(PlageASupprimer, .Rows(i))
End If
End If
Next i
If Not PlageASupprimer Is Nothing Then PlageASupprimer.Delete
End With
Corto
JulieH a écrit :Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide possible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai
testé plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long
(5 secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans une liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide po ssible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai test é
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans un e liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide po ssible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai test é
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans un e liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie
Bonjour à toutes et tous,
Je suis à la recherche de la solution la plus rapide po ssible pour
supprimer des lignes (Excel 2003). En effet, grâce au forum, j'ai test é
plusieurs techniques qui fonctionnent très bien mais mon fichier
s'alourdit (environ 30 000 lignes à terme) et cela devient très long (5
secondes environ pour 1500 lignes).
Dans une feuille "Accueil", je choisis une valeur dans un e liste
déroulante. Je clique sur un bouton et la macro va effacer dans une
autre feuille toutes les données différentes de ma valeur.
Voici la macro que j'utilise actuellement :
Sheets("Données").Activate
Dim i As Long, Valeur As String
Valeur = Sheets("Accueil").Range("B11").Value
With Sheets("Données")
For i = .Range("E65000").End(xlUp).Row To 6 Step -1
If .Cells(i, "E") <> Valeur Then
.Rows(i).Delete
End If
Next i
End With
Quelqu'un a-t-il quelque chose de plus rapide ?
Merci d'avance.
Julie