none
DIGITO DE VERIFICACION

    Pregunta

  • hola buenas DIAS me encuentro en un problemas super grande lo que pasa es que
    he estado mirando ejercicios en la web sobre como verificar el digito de verificacion para colombia,,,,cuando digiten el documento de identidad
    he encontrado ejercicios hecho para excel y para c char
    pero yo lo necesito para visual basic

    que cuando yo digite en un textbox el numnero de documento.

    el algoritmo calcule y me lo muestre en otro textbox
    gracias por si me pueden ayudar con eso

    es para que el algoritmo calcule el digito de verificacion gracias

    en visual basic 2008

     

     

    este codigo sirve para excel en macros

    Sub digitoverificacion()
        i = 2
        While Hoja1.Range("A" & i).Value <> ""
            Hoja1.Range("B" & i).Value = DV(Hoja1.Range("A" & i).Value)
            i = i + 1
        Wend
    End Sub


    Public Function DV(Nit)
    Dim TipoRet, lnRetorno, Arreglo_PA(15), WSuma, WDato, WDig_Ver As Integer
    TipoRet = VarType(Nit)
    Select Case TipoRet
    Case TipoRet = "C"
    Nit = Trim(Nit)
    Case TipoRet = "N" Or TipoRet = "Y"
    Nit = Trim(Str(Nit))
    End Select

    Arreglo_PA(1) = 71
    Arreglo_PA(2) = 67
    Arreglo_PA(3) = 59
    Arreglo_PA(4) = 53
    Arreglo_PA(5) = 47
    Arreglo_PA(6) = 43
    Arreglo_PA(7) = 41
    Arreglo_PA(8) = 37
    Arreglo_PA(9) = 29
    Arreglo_PA(10) = 23
    Arreglo_PA(11) = 19
    Arreglo_PA(12) = 17
    Arreglo_PA(13) = 13
    Arreglo_PA(14) = 7
    Arreglo_PA(15) = 3
    lnRetorno = 0
    WDato = Right(Space(15) + Trim(Nit), 15)
    WSuma = 0
    WDig_Ver = 0
    For i = 1 To 15
    WSuma = WSuma + (Val(Mid(WDato, i, 1)) * Arreglo_PA(i))
    Next i

    WSuma = WSuma Mod 11

    If WSuma = 0 Or WSuma = 1 Then
    lnRetorno = WSuma
    Else
    lnRetorno = 11 - WSuma
    End If

    If TipoRet = "C" Then
    DV = Trim(Str(lnRetorno))
    Else
    DV = lnRetorno
    End If
    End Function

     

    como puedo pasarlo a visual basic 2008ç

    esto que necesito es para que calcule el  nit debpendiendo de el numero de documento



    martes, 19 de abril de 2011 16:18

Respuestas

  • Puedes hacer algo asi:

    en el evento validated del textbox1 colocas esto

    TextBox3.text = TextBox1.text & " - " & TextBox2.text

     

    aunque lo aconsejable es que el documento y el dig de verificacion queden por separados

     

    Si mis respuestas te han ayudado no olvides marcarlas como correctas.


    Atentamente Walter Jimenez G
    • Marcado como respuesta Preiles Marin martes, 19 de abril de 2011 18:53
    martes, 19 de abril de 2011 17:53

Todas las respuestas

  • cordial saludo,

    Creo que te toca explicar mejor lo de tu problema por que no se entiende

    martes, 19 de abril de 2011 16:40
  • Public Function digito_verificacion(ByVal nit As String)
        nit = Format(Val("" & nit), "000000000000000")
        Dim residuo As Integer = 0
        Dim mul As Integer = 0
        'MsgBox(res)
    
        For i As Integer = 15 To 1 Step -1
          If i = 15 Then
            mul = 3
          ElseIf i = 14 Then
            mul = 7
          ElseIf i = 13 Then
            mul = 13
          ElseIf i = 12 Then
            mul = 17
          ElseIf i = 11 Then
            mul = 19
          ElseIf i = 10 Then
            mul = 23
          ElseIf i = 9 Then
            mul = 29
          ElseIf i = 8 Then
            mul = 37
          ElseIf i = 7 Then
            mul = 41
          ElseIf i = 6 Then
            mul = 43
          ElseIf i = 5 Then
            mul = 47
          ElseIf i = 4 Then
            mul = 53
          ElseIf i = 3 Then
            mul = 59
          ElseIf i = 2 Then
            mul = 67
          Else
            mul = 71
          End If
          residuo = residuo + (Val(GetChar(nit, i)) * mul)
        Next
        residuo = residuo Mod 11
    
        If residuo = 0 Then
          residuo = 0
        ElseIf residuo = 1 Then
          residuo = 1
        Else
          residuo = 11 - residuo
        End If
        Return residuo
      End Function
    

    Atentamente Walter Jimenez G
    • Propuesto como respuesta jose walter martes, 19 de abril de 2011 20:10
    martes, 19 de abril de 2011 16:43
  • hola que tal y como le coloco un textbox para que el numero entre y lo calcule y otro textbox para que muestre  el resultado?
    martes, 19 de abril de 2011 16:52
  • Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      TextBox2.text = digito_verificacion(TextBox1.Text)
     End Sub
    
    o lo agregas a algún evento de la caja de texto, te recomiendo en el validated

    Atentamente Walter Jimenez G
    martes, 19 de abril de 2011 16:56
  • parce

    vos sos un reteso muchas 'gracias no se imagina cuan ayuda a hecho por mi
                'te lo agradezco de corazon
                'pero te tengo otra pequeña preguntilla como puedo hacer para que me coloque la identificacion luego el guion y por ultimo el digito calculado en

    otra caja de texto?

    martes, 19 de abril de 2011 17:25
  • Puedes hacer algo asi:

    en el evento validated del textbox1 colocas esto

    TextBox3.text = TextBox1.text & " - " & TextBox2.text

     

    aunque lo aconsejable es que el documento y el dig de verificacion queden por separados

     

    Si mis respuestas te han ayudado no olvides marcarlas como correctas.


    Atentamente Walter Jimenez G
    • Marcado como respuesta Preiles Marin martes, 19 de abril de 2011 18:53
    martes, 19 de abril de 2011 17:53