Como marcar en un numero de 9 dígitos el año 2000, cuando el 9° y 7° digito son ceros.

Tengo una macro que de 21 o 23 dígitos selecciona los últimos 9 y marca los años menor de 1950 y no mayores de 2020. Pero cuando son de 23 dígitos los dos últimos son ceros y al tener el año 2020 quita el primer 20 y toma los dos ceros convirtiendo el año en el año 2000 y como esta en el limite no lo marca, y el dato que deja es incorrecto. Se requiere que se marque el año 2000 cuando en el fina termine en dos ceros.

1 Respuesta

Respuesta
2

La verdad, no he entendido la pregunta sobre todo lo de menor de 1950 y no mayor que 2020. El 2019 no cumple con la primera, pero sí con la segunda. Así que respondo el enunciado

Si tengo el cuadro de texto Texto0 donde escribo 9 dígitos, como en el tercero por la derecha no hay un cero, en texto2 no me pone nada

Pero si ahora cambio el 7 por un 0

Como no sé cuando quieres "hacer el cálculo" uso

Private Sub Texto2_GotFocus()
If Right([Texto0], 1) = 0 And Mid([Texto0], 7, 1) = 0 Then
Texto2 = 2000
End If
End Sub

Julian muchas gracia el problema era que los números que se manejan es de 21 y 23 dígitos la macro reconoce el año empezado en el dígito 12 cuando es 21 dígito, el 22 y 23 son ceros pero el dígito 11001400300220200054800 el año es 2020 pero la macro toma el numero 200054800 la cual es incorrecto. Lo que se me ocurrió fue limpiar espacios y ordenar que la macro solo reconociera 21 dígito y sobre este numero continuar la macro, y solucione el problema. Gracias

Sabes algo de Javascript?, estoy necesitando rellenar un formulario automáticamente?

Por partes, a lo primero, te convendría usar Len. Por ejemplo

If Len([texto1])=21 then

....

elseif len([texto1]=23 then

....

end if

A lo segundo, lo siento pero no sé nada de JavaScript

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas