Amélioration des perfomances lecture des cellules VBA
Bonjour,
J'aimerais effectuer des test logiques sur les valeurs des cellules d'un fichier Excel, mais je me rends compte que le traitement est en réalité assez long.
Du coup j'ai fait quelques tests mais je ne vois pas comment je pourrais rendre cette exécution plus rapide.
Enfait si je fais par exemple 2500*2500 comparaisons entre deux nombres, Excel est plutôt rapide (moins d'une seconde): voir l'exemple ci-dessous.
Code:
1 2 3 4 5 6 7 8 9 10
| Sub TestlogiqueNombre()
For i = 1 To 2500
For j = 1 To 2500
If i = j Then
m = m + 1
End If
Next j
Next i
MsgBox (m)
End Sub |
En revanche si je fais les mêmes opérations, mais cette fois ci, je n'utilise plus des nombres directement mais les cellules de mon classeur, le traitement est beaucoup plus long ! Jusqu’à une minute...
Je précise pour le code ci-dessous, que mes colonnes A et B contiennent toutes deux des valeurs de 1 à 2500
Code:
1 2 3 4 5 6 7 8 9
| Sub TestlogiqueCellule()
For i = 1 To 2500
For j = 1 To 2500
If Cells(i, 1).Value = Cells(j, 2).Value Then
m = m + 1
End If
Next j
Next i
MsgBox (m) |
Donc en soi les deux fonctions effectuent les mêmes opérations mais l'une va chercher les valeurs dans la feuille Excel, j'imagine donc que c'est cela qui est aussi long.
Pourriez-vous m'indiquer comment faire pour pouvoir comparer deux cellules Excel de manière plus rapide ?
Merci d'avance :)