GRANDE LEANDRO!!
Funciona perfecto lo que me hiciste sólo le quite el signo = a la linea :
If Cont >= Cooncordancias Then .
Tambien le agregue una variable que guarda la linea o indice que esta el valor que no cumple la concoordancia para despues modificarlo.
acá copio como quedo corregido:
Option Explicit
Dim Dato(1 To 8) As String
Dim LineasDuplicadas() As Long
Private Function VerificarDuplicados(Cooncordancias As Byte) As Long
Dim i As Long, J As Long, X As Long, Y As Long
Dim s1() As String, s2() As String
Dim Cont As Long
Dim Acum As Long
For i = LBound(Dato()) To UBound(Dato()) - 1
s1 = Split(Dato(i), ",")
For J = i + 1 To UBound(Dato())
Cont = 0
s2 = Split(Dato(J), ",")
For X = 0 To UBound(s1)
For Y = 0 To UBound(s2)
If s1(X) = s2(Y) Then
Cont = Cont + 1
End If
Next
Next
If Cont > Cooncordancias Then
ReDim Preserve LineasDuplicadas(VerificarDuplicados)
LineasDuplicadas(VerificarDuplicados) = J
VerificarDuplicados = VerificarDuplicados + 1
Exit For
End If
Next
Next
End Function
Private Sub Command1_Click()
VerificarDuplicados
End Sub
Private Sub Form_Load()
Dim n
Dato(1) = "9,2,8,14"
Dato(2) = "7,5,6,45"
Dato(3) = "9,90,8,23"
Dato(4) = "4,5,6,74"
Dato(5) = "9,10,11,12"
Dato(6) = "74,6,93,5"
Dato(7) = "18,13,12,35"
Dato(8) = "21,22,23,77"
Dim Dup As Long
Dup = VerificarDuplicados(2)
If UBound(LineasDuplicadas) >= 0 Then
For n = 0 To UBound(LineasDuplicadas)
Debug.Print "Linea que no cumple cooncordancia: " & LineasDuplicadas(n)
Next
End If
End Sub
Según esta ese ejemplo devuelve que el indice 6 no cumple la verificacion de concordancia (con el indice 4 comparten 3 numeros en comun)
.
Creo que para mejorarla del todo habria que hacer que la función devuelva la matriz de lineas que no cumplen en vez de hacerlo en una variable global y que si no hay ningun valor da un error 9 y no se como hacer ninguna de esta cosas.!!