Je reviens sur ce sujet après avoir effectué un petit banc d'essai chrono. Si la solution de Klin89 est d'un écriture plus belle et plus rationnelle pour de grands Arrays pour les petits Arrays ma solution d'origine s'avère plus rapide:
Sub Chrono()
a = Array(0, 1, 0)
b = Array(0, 1, 0)
' Comparaison1 (membre à membre)
st = Timer
For i = 1 To 5000000
c = Comparaison1(a, b)
Next
Debug.Print "Comparaison 1= " & Timer - st
' Comparaison2 (globale)
st = Timer
For i = 1 To 5000000
c = Comparaison2(a, b)
Next
Debug.Print "Comparaison 2= " & Timer - st
End Sub
Function Comparaison1(ByVal a, ByVal b) As Boolean
Comparaison1 = (a(0) = b(0)) And (a(1) = b(1)) And (a(2) = b(2))
End Function
Function Comparaison2(ByVal a, ByVal b) As Boolean
Comparaison2 = Join(a, ",") = Join(b, ",")
End Function
Chrono me donne le résultat suivant:
Comparaison 1= 4,945313
Comparaison 2= 9,585938
Je n'ai pas essayé sur de plus grands Arrays