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

Contestando a la otra pregunta, te comento:

En primer lugar, creo recordar que tal como haces el DIM es incorrecto porque deben declararse explicitamente.

Dim NS, N1, N2, acumulador, x, codicontrol, xifra as Integer

En este caso sólo xifra se define como integer, ya que los demas toman el tipo Variant. (No sabría decirte si en VBA o sea Visual Basic de Excel, es igual)

Yo, por norma, las defino individualmente:

Dim NS As Integer, x As Integer, xifra As Integer, ...

Por otra parte, supongo que el trabajo está pensado para ir aprendiendo distintas opciones ya que en el caso de la pregunta:

resposta1 = InputBox("Eres cliente del banco ? (S/N):")

No tiene mucho sentido cuando la pregunta puede ser un MsgBox

If MsgBox("Eres cliente del Banco", vbYesNo) = vbNo Then Exit Sub

Si tienes que usar la comparacion de un valor albabético que puede ser mayúsculas o minúsculas, se acostumbra utilizar los convertidores de mayúsculas o Minúsculas, por ejemplo:

En este caso, ¿ que ocurriría si el usuario teclea SI ? o Teclea No

Supongamos que a una pregunta el usuario puede responder Si, SI, si o sI, como ves tendrías que comprobar 4 posibilidades mientras que se puede hacer:

If Ucase(Respuesta)="SI" Then

en este caso cualquiera de las respuestas que de el usuario del ejemplo, sería correcto ya que Ucase convierte a Mayúsculas.

Por otra parte, no tiene sentido las comparaciones While del Do/Loop ya que explicitamente efectúas un Exit Sub para salir de la rutina, por lo tanto NUNCA se va a dar la circunstancia que comparas puesto que lo habrás 'sacado fuera'

Como puedes ver, hay bastantes cosas que mejorar, quizas porque no os han enseñado las suficientes herramientas.

Por mi parte no hay inconveniente en enseñarte algo más aunque como tu bien dices, no tenemos que superar al resto porque daría que pensar.

Si conocias y podías utilizar lo que te comento, no dudes que la solución es mas adecuada.

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