J'ai une autre question, même si la dernière que j'ai posée est toujours en attente. J'ai une grande quantité de données de plus de 100 000 enregistrements. J'utilise le code ci-dessous pour parcourir les données de sorte que la couleur d'arrière-plan de tout enregistrement dupliqué devienne rouge. Le code fonctionne bien, mais le traitement prend actuellement beaucoup de temps (15 à 20 minutes). Ma question est la suivante: puis-je faire quelque chose pour accélérer le processus?
Le code:
Dim wks As Worksheet, wrkb As Worksheet
Dim rng As Range, rngNew As Range
Dim intCount As Integer, intCount1 As Integer
Dim i As Integer, im As Integer
'Sheet1
Set wks = Worksheets("sheet1")
wks.Range("B2").Activate
'sheet2
Set wksb = Worksheets("sheet2")
' Return current data region.
Set rng = wks.Range("B1").CurrentRegion
Set rngNew = wksb.Range("B1").CurrentRegion
intCount = rng.Rows.Count
intCount1 = rngNew.Rows.Count
For i = 2 To intCount
im = 2
For im = 2 To intCount1
If (rng.Cells(im, 2).Value = rngNew.Cells(i, 2).Value) Then
rng.Cells(i, 2).Interior.ColorIndex = 3
Exit For
End If
Next im
Next
Merci pour ton aide
Une colonne d'assistance dans l'une de vos feuilles doit le faire, en utilisant une
COUNTIF
formule pour compter le nombre d'entrées correspondant à une condition dans l'autre feuille. Ajoutez ensuite un format conditionnel, coloriant les cellules en rouge si la formule retourne> 0.Et ce que @teylyn a dit à propos de VBA est tout à fait juste - à éviter si vous pouvez le faire avec une fonction.
la source