Visual Basic para Aplicaciones - Problemas con textbox

Life is soft - evento anual de software empresarial
 
Vista:

Problemas con textbox

Publicado por Michael (7 intervenciones) el 22/02/2005 18:04:35
Hola, tengo basicamente 3 problemas, estoy comenzando en VB y estoy haciendo una macros para excel.

Problema 1: en un textbox necesito ingresar un campo con el siguiente formato: XX.XXX.XXX-X es para un RUT (en Chile). La idea es que uno ingrese por ejemplo: 2000001 y que el texbox se convierta en: 00.200.000-1 ó 107415223 y sea 10.741.522-3, que sera el valor ingresado en la celda.

Segundo: como puedo desglosar ese numero? para poder verificar el digito verificador? o sea escribir 107 varible1= 1; variable2= 0;variable3= 7, ect...

Tercero: tengo al principio de mi programa: Application.ScreenUpdating = False pero así se me van sumando las userform y se acumulan atraz en vez de eliminarce una vez usada. Para cerrarlas uso unload y así volver a la userform anterior. Ademas como hago para unir los textbox, o sea que un resultado en un textbox de la userform2, al cerrarla se vea reflejado en el textbox de la userform1?.

Bueno, les envio un saludo desde Chile.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con textbox

Publicado por cmgcharli (51 intervenciones) el 22/02/2005 18:52:03
Primer Problema utiliza la funcion Format() por ejempo Variable=Format(variable numero, "# # , # # 0 - 0")

Segundo Problema puedes utilizar varios yo te digo la funcion Mid()
ejemplo variable=mid(numero,1,1) esto extrae un solo digito de numero empezando en la posición 1, para extraer la posicion dos seria ....
variable=mid(numero,2,1) y para la tres te dejo que te lo imagines la
instrucción seria para el numero = 107 If mid(numero,1,1)=1 And mid(numero,2,1)=0 And mid(numero, 3, 1)=7 then..........

Tercero si el nombre por ejemplo del primer formulario el Frm1 y este tiente un TextBox1 y el nombre del segundo formulario es Frm2 y este tiente un TextBox2 para pasar el resultado de el TextBox2 del Frm2 al TextBox1 del Frm1 indicalo con una instrucción Frm1.TextBox1=TextBox2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con textbox

Publicado por Michael (7 intervenciones) el 22/02/2005 19:12:23
Hola cmgcharli, gracias por tu pronta respuesta, en el primer problema sigo teniendo el problema, aún que me acercaste mucho a la solución, lo que ocurre es que al colocar tú formato: "# # , # # 0 - 0" me arroja lo siguiente: 107.421.32-1 pero lo necesito así: 10.742.132-1.
No sé como funciona el formato, por lo que intente varias variantes y obtuve el mismo resultado (107.421.32-1).

Ademas si fuese posible cuando hay un numero mas corto, como 200.000-1 rellenar los espacios anteriores con 0, 00.200.000-1 (solo si fuese sencillo de lo contrario con solo obtener el formato 200.000-1, estaría OK.

Gracias. Michael.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con textbox

Publicado por cmgcharli (51 intervenciones) el 22/02/2005 19:44:39
Supongo dos cosas, primero que siempre el maximo numero de digitos de tu numero es 9 y segundo que siempre el formato xx.xxx.xxx-x se ha de hacer con 9 digitos, prueba lo siguiente y dime que tal:

Do While Len(TextBox1) < 9
TextBox1 = "0" & TextBox1
Loop
TextBox1 = Format(Mid(TextBox1, 1, 8), "00,000,000") & "-" & Mid(TextBox1, 9, 1)

En textBox1 duponemos que tenemos el numero que hay que aplicar el formato pues bien si este no tiene 9 digitos la instruccion Do While se repetira mientra se cumpla la condición que es Len(TextBox1)<9 es decir que le añade 0 por la izquierda al contenido de TextBox1) y cuando Len(TextBox1)=9 no lo ejecuta. (Do.........Loop)
Con respecto al formato lo que hago es hacerlo con los 8 primeros digitos utilizando la funcion mid() y luego le uno el "-" y el ultimo digito extraido tambien con la función mid()

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con textbox

Publicado por Michael (7 intervenciones) el 22/02/2005 19:51:37
Gracias!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!, funcionó perfecto!!!

Te pasaste. Michael.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar