Ver Mensaje Individual
  #11 (permalink)  
Antiguo 14/11/2011, 15:30
Avatar de erbuson
erbuson
 
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Problemas con Visual Basic con Excel

Hola de nuevo:

El siguiente código funciona en Excel:

Código vb:
Ver original
  1. Private Function CodigoControl(NS As Integer) As String
  2.   ' Funcion que calcula y devuelve el código de Control
  3.  Dim N1 As Double, N2 As Double, acumulador As Double, x As Integer
  4.   Dim codicontrol As Integer, xifra As Integer
  5.   N1 = Int(NS / 100)
  6.   N2 = NS Mod 100
  7.   For x = 1 To N2
  8.     acumulador = acumulador + x
  9.   Next
  10.  
  11.   N2 = acumulador * N1 * 13411
  12.   codicontrol = N2 Mod 9
  13.   xifra = N2 Mod 31
  14.  
  15.   If xifra < 10 Then
  16.     lletra = "A"
  17.   ElseIf xifra >= 10 Or xifra < 19 Then
  18.     lletra = "B"
  19.   Else
  20.     lletra = "C"
  21.   End If
  22.  
  23.   CodigoControl = codicontrol & lletra    ' No es necesario Int(codicontrol) porque ya es entero
  24. End Function
  25.  
  26. Private Sub CommandButton1_Click()
  27.   ' Asignacion del Código de Control al socio nnnn introducido en F2
  28.  If CInt(Range("F2").Value) < 1000 Then
  29.     MsgBox ("Introduce un número superior a 1000")
  30.   Else
  31.     Range("F3").Value = CodigoControl(CInt(Range("F2").Value))
  32.   End If
  33. End Sub
  34.  
  35. Private Sub CommandButton2_Click()
  36.   ' Verificacion del Valor nnnn?? introducido en H2
  37.  If CodigoControl(CInt(Left$(Range("H2").Value, 4))) = Right$(Range("H2").Value, 2) Then
  38.     Range("H3").Value = "Correcto"
  39.   Else
  40.     Range("H3").Value = "Incorrecto"
  41.   End If
  42. End Sub

Pienso que está haciendo lo que necesitas, compáralo con el tuyo para ver las diferencias piensa no obstante que en eso de la programación casi todos los caminos conducen a Roma, o sea que lo mismos resultados puedes conseguirlos de maneras similares, dependiendo de la imaginacion y enfoque de cada uno.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...