Macro trop lente [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 12 novembre 2008
Statut
Membre
Dernière intervention
12 novembre 2008
-
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
-
Bonjour,

Je travaille actuellement sur un fichier excel afin de trouver les doublons dans une base de données Excel. Le seul problème est que la macro que j'ai créée met beaucoup trop de temps.

Détail de ma macro actuelle:

Sub DOUBLONSN1()

Sheets("BD").Select
Range("A5").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Doublons").Select
Range("B5").Select
ActiveSheet.Paste
Sheets("Doublons").Select
Range("B5").Select
Do While Not (IsEmpty(ActiveCell))
    Cells(ActiveCell.Row, 3).Formula = "=IF(MATCH(C[-1],C[-1],0)=ROW(),""ok"",""doublons"")"
    Selection.Offset(1, 0).Select
Loop
Dim l As Integer
For l = Cells(65256, 3).End(xlUp).Row To 1 Step -1
If Cells(l, 3).Value = "ok" Then Cells(l, 3).EntireRow.Delete
Next l
Range("A1").Select

End Sub

3 réponses

Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Bonjour,

déjà : quel est le but de ces 2 sélections successioves :

Range("A5").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select

?


(sans préjudice du reste...
Messages postés
2
Date d'inscription
mercredi 12 novembre 2008
Statut
Membre
Dernière intervention
12 novembre 2008

Le but est de sélectionner toutes les cellules de la colonnes à partir de la cellule A5 et de les copier ensuite dans une autre feuille pour effectuer une recherche des doublons.
Mais ce n'est pas cette partie là de la macro qui ralentit, il s'agit plutot des fonctions loop et while.
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Inhibe l'affichage avant Do While
Application.ScreenUpdating = False
et remets- à true après Next I