REGLAMENTO DE USO (31 Mar 2011)
Recordatorio a todos los usuarios de los foros:
5. Está prohibido transmitir a través de estos foros cualquier contenido (información, datos, gráficos, texto, archivos, ligas, software u otro material) que viole cualquier derecho de propiedad industrial o intelectual. Se requiere mencionar al autor y el medio de publicación cuando se haga una referencia editorial.
Calculo Digito verificador NSS
- enrique_morales1979
- Autor del tema
- Fuera de línea
- Moderator
-
Menos
Más
17 años 4 meses antes #44510
por enrique_morales1979
Saludos
Visita mi página
www.freewebs.com/formatospc
Calculo Digito verificador NSS Publicado por enrique_morales1979
Les mando un archivito para calcular el digito verificador de los numeros de seguridad social, espero que le sirva a alguien
saludos
saludos
Saludos
Visita mi página
www.freewebs.com/formatospc
El siguiente usuario dijo gracias: alonso23
Por favor, Conectar para unirse a la conversación.
- gaboaranda
- Fuera de línea
- Administrator
-
17 años 4 meses antes #44515
por gaboaranda
Respuesta de gaboaranda sobre el tema Re: Calculo Digito verificador NSS
Mi estimado quique cualquier aportacion de ti es siempre bien recibida!!!
saludos
saludos
Por favor, Conectar para unirse a la conversación.
- Daniel_Gtz
- Fuera de línea
- Moderator
-
- No es lo mismo dame, que ayudame.
Menos
Más
- Mensajes: 3500
- Gracias recibidas: 0
17 años 4 meses antes #44518
por Daniel_Gtz
Respuesta de Daniel_Gtz sobre el tema Re: Calculo Digito verificador NSS
Gracias Quique...
a mas de uno nos va a servir...
a mas de uno nos va a servir...
Por favor, Conectar para unirse a la conversación.
- jpedro967
- Fuera de línea
- Gold Boarder
-
Menos
Más
- Mensajes: 178
- Gracias recibidas: 0
17 años 4 meses antes #44519
por jpedro967
Respuesta de jpedro967 sobre el tema Re: Calculo Digito verificador NSS
Buen dia a todos:
enriquemorales1979, sinceramente te agradezco la aportacion que acabas de hacer al foro, cheque el archivo y es funcional.
GRACIAS
enriquemorales1979, sinceramente te agradezco la aportacion que acabas de hacer al foro, cheque el archivo y es funcional.
GRACIAS
Por favor, Conectar para unirse a la conversación.
- rod940512
- Fuera de línea
- Fresh Boarder
-
Menos
Más
- Mensajes: 14
- Gracias recibidas: 0
17 años 4 meses antes #44596
por rod940512
Respuesta de rod940512 sobre el tema Re: Calculo Digito verificador NSS
CP ENRIQUE muy útil tu archivo.
Gracias por compartirlo.
Gracias por compartirlo.
Por favor, Conectar para unirse a la conversación.
- ByPaco
- Fuera de línea
- Moderator
-
Menos
Más
- Mensajes: 330
- Gracias recibidas: 0
17 años 4 meses antes #44828
por ByPaco
« Antes de que los reinos cambien, los hombres deberán cambiar »
Respuesta de ByPaco sobre el tema Re: Calculo Digito verificador NSS
Para los fanáticos de las macros aquí les dejo esta función para calcular el dígito verificador, lo mismo pero más barato.
Function NSS(Numero As String)
If Len(Numero) < 10 Then 'Si tiene menos de 10 dígitos
NSS = "Faltan Dígitos " & Numero 'Pone un mensaje seguido del número
Exit Function 'y termina la función
End If
If Len(Numero) > 11 Then 'si tiene más de 11 dígitos
NSS = "Muchos Dígitos " & Numero 'pone un mensaje seguido del número
Exit Function 'y termina la función
End If
Dim i As Integer 'para cada dígito
Dim j As Integer 'para la suma
Dim k As Integer 'trabajo temporal
For i = 1 To 10 'para cada digito, hasta la posición 10
k = Val(Mid(Numero, i, 1)) 'convierte a valor
If (i Mod 2) = 0 Then 'si la posición del dígito es par (el operador '= 1' define inpar)
k = k * 2
If k > 9 Then 'si el resultado es mayo a 9
k = k - 10 'se suma el primer dígito
k = k + 1 'con el primer dígito
End If
End If
j = j + k
Next i
Digito = Application.WorksheetFunction.RoundUp(j, -1) - j 'al resultado le restamos la decena más alta y obtenemos el dígito
If Len(Numero) = 10 Then 'si tiene 10 dígitos
NSS = Mid(Numero, 1, 10) & Digito 'agrega el numero más el dígito
End If
If Len(Numero) = 11 And Digito = Val(Right(Numero, 1)) Then 'si tiene 11 dígitos y el último es igual al calculado
NSS = Numero 'deja el numero igual
ElseIf Len(Numero) = 11 And Digito <> Val(Mid(Numero, 11, 1)) Then 'si tiene 11 dígitos y el último no es igual al calculado
'aparece un mensaje
msg = MsgBox("El Dígito verificador " & Mid(Numero, 11, 1) & " del Número de Seguridad Social '" & Mid(Numero, 1, 10) & "' no corresponde a " & Digito & "." & Chr(13) & "¿Desea cambiarlo?", vbYesNo + vbQuestion, "Dígito Verificador" )
If msg = vbYes Then 'si elije YES a cambiar el dígito
NSS = Mid(Numero, 1, 10) & Digito 'pone el numero con el digito calculado
Else 'si no
NSS = Mid(Numero, 1, 10) & "?" 'pone el número con un signo en lugar del dígito
End If
End If
End Function
solo pondrian en la ceda =NSS(B1) ó =NSS(10 digitos del Número)
considerando que la celda A2 es donde están los 10 dígitos del número
Function NSS(Numero As String)
If Len(Numero) < 10 Then 'Si tiene menos de 10 dígitos
NSS = "Faltan Dígitos " & Numero 'Pone un mensaje seguido del número
Exit Function 'y termina la función
End If
If Len(Numero) > 11 Then 'si tiene más de 11 dígitos
NSS = "Muchos Dígitos " & Numero 'pone un mensaje seguido del número
Exit Function 'y termina la función
End If
Dim i As Integer 'para cada dígito
Dim j As Integer 'para la suma
Dim k As Integer 'trabajo temporal
For i = 1 To 10 'para cada digito, hasta la posición 10
k = Val(Mid(Numero, i, 1)) 'convierte a valor
If (i Mod 2) = 0 Then 'si la posición del dígito es par (el operador '= 1' define inpar)
k = k * 2
If k > 9 Then 'si el resultado es mayo a 9
k = k - 10 'se suma el primer dígito
k = k + 1 'con el primer dígito
End If
End If
j = j + k
Next i
Digito = Application.WorksheetFunction.RoundUp(j, -1) - j 'al resultado le restamos la decena más alta y obtenemos el dígito
If Len(Numero) = 10 Then 'si tiene 10 dígitos
NSS = Mid(Numero, 1, 10) & Digito 'agrega el numero más el dígito
End If
If Len(Numero) = 11 And Digito = Val(Right(Numero, 1)) Then 'si tiene 11 dígitos y el último es igual al calculado
NSS = Numero 'deja el numero igual
ElseIf Len(Numero) = 11 And Digito <> Val(Mid(Numero, 11, 1)) Then 'si tiene 11 dígitos y el último no es igual al calculado
'aparece un mensaje
msg = MsgBox("El Dígito verificador " & Mid(Numero, 11, 1) & " del Número de Seguridad Social '" & Mid(Numero, 1, 10) & "' no corresponde a " & Digito & "." & Chr(13) & "¿Desea cambiarlo?", vbYesNo + vbQuestion, "Dígito Verificador" )
If msg = vbYes Then 'si elije YES a cambiar el dígito
NSS = Mid(Numero, 1, 10) & Digito 'pone el numero con el digito calculado
Else 'si no
NSS = Mid(Numero, 1, 10) & "?" 'pone el número con un signo en lugar del dígito
End If
End If
End Function
solo pondrian en la ceda =NSS(B1) ó =NSS(10 digitos del Número)
considerando que la celda A2 es donde están los 10 dígitos del número
« Antes de que los reinos cambien, los hombres deberán cambiar »
Por favor, Conectar para unirse a la conversación.
Tiempo de carga de la página: 2.103 segundos