Validar Formato de Código para toda la columna Excel Macros

Del presente código:

Sub ValidaCod()'P-0055-13-0023-00001-001'123456789012345678901234    c = [B4]    valida = True    datos = Array("", "P", "-", 1, 1, 1, 1, "-", 1, 1, "-", 1, 1, 1, 1, "-", 1, 1, 1, 1, 1, "-", 1, 1, 1)    If Len(c) = 24 Then        For i = 1 To 24            If datos(i) = 1 Then                If Not IsNumeric(Mid(c, i, 1)) Then valida = False            Else                If Mid(c, i, 1) <> datos(i) Then valida = False            End If        Next    Else        valida = False    End If    If valida Then        MsgBox "Código correcto"    Else        MsgBox "El código NO es correcto"    End IfEnd Sub

Esto se debe aplicar a todos los registrosde la columna codigo.

1 Respuesta

Respuesta
1

¿Pero cuál es la columna de código, la A, la B, la C?

Te anexo la macro, valida los códigos en la columna "C" y empieza desde la fila 2

Sub ValidaCod()
'Por.Dante Amor
    'P-0055-13-0023-00001-001
    '123456789012345678901234
    col = "C"
    For j = 2 To Range(col & Rows.Count).End(xlUp).Row
        c = Cells(j, col)
        valida = True
        datos = Array("", "P", "-", 1, 1, 1, 1, "-", 1, 1, "-", 1, 1, 1, 1, "-", 1, 1, 1, 1, 1, "-", 1, 1, 1)
        If Len(c) = 24 Then
            For i = 1 To 24
                If datos(i) = 1 Then
                    If Not IsNumeric(Mid(c, i, 1)) Then valida = False
                Else
                    If Mid(c, i, 1) <> datos(i) Then valida = False
                End If
            Next
        Else
            valida = False
        End If
        If valida Then
            'MsgBox "Código correcto"
        Else
            Cells(j, col).Interior.ColorIndex = 6
        End If
    Next
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Gracias. No era necesario que te diga la columna. Puedes ponerle cualquiera, igual yo cambio aqui el codigo. Gracias, ya lo probe y funciona

Es necesario la columna, porque si no, tengo que adaptar la macro para que te sea sencillo modificar la macro, y eso me cuesta más trabajo y tengo que dedicarle más tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas