Il y a combien de 0 au final dans la formule ? 7 ou 6
La seconde formule en question est
SI([@[DESCR_LOGEMENT]]="0000000";0;SI(NB.SI($X$1:X2;$X2)>1;0;1))
. Et doit se retrouver dans la colonne AK.
la formule exacte est :
SI($G1="000000";0;SI(NB.SI($X$1:X2;$X2)>1;0;1))
pour la colone AK2 jusqu'à la dernière ligne non vide.
je propose la correction suivante de la macro de Baboutz (pour moi, le test sur critere2 est de savoir s'il est égal à 000000 ou 0000000, il ne rentre dans pas le dictionnaire).
Sub version_v3()
Dim critere1 As Variant, critere2 As Variant, resultat As Variant, i As Long
Dim Dico As Object
Set Dico = CreateObject("Scripting.Dictionary")
Dico.CompareMode = 1
depart = Now
critere1 = Range("X2:X" & Range("B" & Rows.Count).End(xlUp).Row).Value
critere2 = Range("G2:G" & Range("B" & Rows.Count).End(xlUp).Row).Value
ReDim resultat(1 To UBound(critere1), 1 To 1)
For i = 1 To UBound(critere1)
If Not Dico.exists(critere1(i, 1)) Then resultat(i, 1) = IIf(critere2(i, 1) = "000000", 0, 1) Else resultat(i, 1) = 0
Dico(critere1(i, 1)) = 1
Next
Range("AK2:AK" & Range("B" & Rows.Count).End(xlUp).Row).Value = resultat
MsgBox Format(Now - depart, "hh:mm:ss")
End Sub