Bonjour,
Tout d'abord, merci de votre aide, ce forum est génial.
Voici mon problème, dans un classeur, j'ai une feuille qui peut contenir 50 000 lignes.
Dans la colonne "D", plusieurs noms différents sont répertoriés ex:
Toto
Baba
Lulu
JoJo
J'essaye, par une macro, de ne conserver que les lignes comportant le mot Jojo. et d'éliminer les autres. J'ai trouvé cette macro, qui démarre, mais qui ne s'arrète jamais.
Sub REFERENCES_JoJo()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlManual
Sheets("Références").Select
Dim z$, i&, k&
k = Cells(50000, 4).Row
For i = k To 2 Step -1
z = Cells(i, 4).Value
If Not (Cells(i, 4) Like ("Jojo")) Then Rows(i).Delete
Next
ActiveWorkbook.Save
Application.Calculation = xlAutomatic
End Sub
J'ai tenté de stopper dans la macro le calcul automatique et de le rétablir à la fin, mais cela ne change rien.
J'ai essayé une autre macro, en enregistrant avec l'outil Excel, cela fonctionne, à une vitesse extraordinaire: Macro enregistrée:
Sub Jojo()
ActiveSheet.Range("$A$1:$Q$50000").AutoFilter Field:=4, Criteria1:= _
"<>Jojo", Operator:=xlAnd
Range("A2204").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
ActiveSheet.Range("$A$1:$Q$2203").AutoFilter Field:=4
End Sub
Mais je pense que cela fonctionne avec le fichier d'aujourd'hui (A2204) mais demain si c'est (A5830) ???
Dans l'exemple joint, les noms sont triés ce n'est pas la cas dans mon exemple.
Avez-vous une solution ?
Merci d'avance.
Tout d'abord, merci de votre aide, ce forum est génial.
Voici mon problème, dans un classeur, j'ai une feuille qui peut contenir 50 000 lignes.
Dans la colonne "D", plusieurs noms différents sont répertoriés ex:
Toto
Baba
Lulu
JoJo
J'essaye, par une macro, de ne conserver que les lignes comportant le mot Jojo. et d'éliminer les autres. J'ai trouvé cette macro, qui démarre, mais qui ne s'arrète jamais.
Sub REFERENCES_JoJo()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlManual
Sheets("Références").Select
Dim z$, i&, k&
k = Cells(50000, 4).Row
For i = k To 2 Step -1
z = Cells(i, 4).Value
If Not (Cells(i, 4) Like ("Jojo")) Then Rows(i).Delete
Next
ActiveWorkbook.Save
Application.Calculation = xlAutomatic
End Sub
J'ai tenté de stopper dans la macro le calcul automatique et de le rétablir à la fin, mais cela ne change rien.
J'ai essayé une autre macro, en enregistrant avec l'outil Excel, cela fonctionne, à une vitesse extraordinaire: Macro enregistrée:
Sub Jojo()
ActiveSheet.Range("$A$1:$Q$50000").AutoFilter Field:=4, Criteria1:= _
"<>Jojo", Operator:=xlAnd
Range("A2204").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
ActiveSheet.Range("$A$1:$Q$2203").AutoFilter Field:=4
End Sub
Mais je pense que cela fonctionne avec le fichier d'aujourd'hui (A2204) mais demain si c'est (A5830) ???
Dans l'exemple joint, les noms sont triés ce n'est pas la cas dans mon exemple.
Avez-vous une solution ?
Merci d'avance.
Pièces jointes
Dernière édition: