Revisión del libro en excel

Para elsa :

Como puedo obtener las 4 coincidencias faltantes del anterior libro

1 respuesta

Respuesta
1

Recibido tu libro. Estoy a la espera de un modelo de hoja y aclaraciones de cómo se ejecutará el proceso.

Sdos!

En libro anterior se solicitaba la fila a evaluar y el tipo de coincidencias.

Según tu correo necesitas que estén todas las coincidencias para esa fila (según lista), y así queda entonces la macro, para la fila 5:

Sub buscaCoincidencias()
'el número buscado se coloca en celda UA1
    dato = ActiveSheet.[UA1]
    If dato = "" Then Exit Sub
'rango a evaluar
    Set rgoTabla = ActiveSheet.Range("Z1:TW42")
'consultar qué fila debe evaluarse
    filx = Val(InputBox("¿Qué fila deseas evaluar?"))
    If filx = "" Or filx > 42 Then Exit Sub
'se coloca la lista de resultados en col UC. Antes se borran resultados anteriores
    Columns("UC:UC").ClearContents
'fila destino
    y = 1
'se recorren todas las col de esa fila
    co1 = 26: co2 = 543
    For co = 26 To 543
        n = Format(Cells(filx, co), "0000")
        If n = dato Or Left(n, 2) = Left(dato, 2) Or Right(n, 2) = Right(dato, 2) Or _
        (Left(n, 1) = Mid(dato, 3, 1) Or Mid(n, 2, 1) = Right(dato, 1)) Or _
         (Mid(n, 2, 1) = Mid(dato, 3, 1) Or Left(n, 1) = Right(dato, 1)) Then
        'colocar el número en la col de resultados, con formato.
            Range("UC" & y) = n:  Range("UC" & y).NumberFormat = "0000"
            y = y + 1
        End If
    Next co
End Sub

Va macro ajustada. Solo se consulta por la fila y se muestran todas las combinaciones encontradas en esa fila, tal como se aprecia en la imagen para la fila coloreada.

Sub buscaCoincidencias()
'x Elsamatilde
'el número buscado se coloca en celda UA1
    Lookup = ActiveSheet.[UA1]
    If Lookup = "" Then Exit Sub
'rango a evaluar
    Set rgoTabla = ActiveSheet.Range("Z1:TW42")
'consultar qué fila debe evaluarse
    filx = Val(InputBox("¿Qué fila deseas evaluar?"))
    If filx = "" Or filx > 42 Then Exit Sub
'se coloca la lista de resultados en col UC. Antes se borran resultados anteriores
    Columns("UC:UC").ClearContents
'fila destino
    x = 1
'se recorren todas las col de esa fila (z:tw)
    co1 = 26: co2 = 543
    For Each n In Range(Cells(filx, co1), Cells(filx, co2))
        n = Format(n, "0000")
        If n = Lookup Or Left(n, 2) = Left(Lookup, 2) Or Right(n, 2) = Right(Lookup, 2) Or _
        (Left(n, 1) = Left(Lookup, 1) And Right(n, 1) = Right(Lookup, 1)) Or _
        (Left(n, 1) = Left(Lookup, 1) And Mid(n, 3, 1) = Mid(Lookup, 3, 1)) Or _
        (Mid(n, 2, 1) = Mid(Lookup, 2, 1) And Right(n, 1) = Right(Lookup, 1)) Or _
        (Mid(n, 2, 1) = Mid(Lookup, 2, 1) And Mid(n, 3, 1) = Mid(Lookup, 3, 1)) Then
            'n.Interior.ColorIndex = 4
            'se agrega el nro a la col uc
            Range("UC" & x) = n
            x = x + 1
        End If
    Next n
MsgBox "Fin del proceso."
End Sub

Sdos y no olvides valorar la respuesta.

Aquí queda la imagen del ejemplo resuelto en fila 5:

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas