Ver Mensaje Individual
  #12 (permalink)  
Antiguo 15/11/2011, 04:53
Avatar de sven_uri
sven_uri
 
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Problemas con Visual Basic con Excel

Buenas erbuson! Muchas grácias por toda la info!! He estado probando tanto lo que me has puesto como lo que tenia yo. La cosa es que al profesor nose si le gustara que me avance más que mis compañeros de clase (no es ni muy simpatico ni muy razonable este profesor..)

En caso de querer hacerlo más básico, como lo ves de la siguiente manera?

Código vb:
Ver original
  1. Sub socis2()
  2.  
  3.         Dim NS, N1, N2, acumulador, x, codicontrol, xifra As Integer
  4.         Dim N3, lletra, resposta1, resposta2 As String
  5.            
  6.             If NS >= 1001 Then
  7.        
  8.                  MsgBox ("Vuelve a iniciar el programa e introduce un número superior a 1001")
  9.                  Exit Sub
  10.        
  11.             End If
  12.    
  13. Do
  14.         resposta1 = InputBox("Eres cliente del banco? (S/N):")
  15.  
  16.         If resposta1 = "N" Or resposta1 = "n" Then
  17.          
  18.             Range("F2").Value = ""
  19.             Range("F3").Value = ""
  20.             Range("I2").Value = ""
  21.             Range("I3").Value = ""
  22.                
  23.             Exit Sub
  24.        
  25.         End If
  26.        
  27.    
  28.     Do
  29.    
  30.             resposta2 = InputBox("Quieres salir del programa? (S/N):")
  31.            
  32.             If resposta2 = "S" Or resposta2 = "s" Then
  33.                
  34.                 Range("F2").Value = ""
  35.                 Range("F3").Value = ""
  36.                 Range("I2").Value = ""
  37.                 Range("I3").Value = ""
  38.                
  39.                 Exit Sub
  40.            
  41.             End If
  42.                
  43.             NS = Range("F2").Value
  44.             N3 = Range("I2").Value
  45.  
  46.              
  47.             N1 = Int(NS / 100)
  48.             N2 = NS - (N1 * 100)
  49.        
  50.             acumulador = 0
  51.        
  52.             For x = 1 To N2 Step 1
  53.            
  54.                 acumulador = acumulador + x
  55.            
  56.             Next
  57.        
  58.             N2 = acumulador * N1 * 13411
  59.  
  60.                
  61.             codicontrol = (N2 / 9 - Int(N2 / 9)) * 9
  62.        
  63.             xifra = (N2 / 31 - Int(N2 / 31)) * 31
  64.  
  65.            
  66.             If xifra < 10 Then
  67.            
  68.                 lletra = "A"
  69.                
  70.             ElseIf xifra >= 10 Or xifra < 19 Then
  71.            
  72.                 lletra = "B"
  73.                
  74.             Else
  75.            
  76.                 lletra = "C"
  77.                
  78.             End If
  79.  
  80.  
  81.        
  82.             Range("F3").Value = NS & Int(codicontrol) & lletra
  83.            
  84.  
  85.             If N3 = Int(codicontrol) & lletra Then
  86.            
  87.                 Range("I3").Value = "Correcto"
  88.            
  89.             Else
  90.            
  91.                 Range("I3").Value = "Incorrecto"
  92.            
  93.             End If
  94.            
  95.     Loop While resposta = "N" Or resposta = "n"
  96.  
  97. Loop While resposta = "S" Or resposta = "s"
  98.  
  99. End Sub

Se puede mejorar más aún de forma sencilla? (aunque sea de forma limitada).

Cómo podria hacerlo para que al apretar el botón no me borre los datos obtenidos, más que nada para que pudiera existir la posibilidad de: mi programa a realizado todo correctamente, miro mis resultados, quiero introducir un nuevo código, borrame los datos antiguos y ahora introduzco un nuevo número. Más que nada por question de "limpieza" de que cada vez que inicio el programa me borre lo que haya para introducir unos nuevos, pero al hacerlo me lo borra todo siempre y nose donde colocar los: Range("F2").Value = "" .

PD: Estoy aprendiendo más contigo que con el profesor que tengo. Muchas grácias por tu tiempo :D.