Excel - texbox

 
Vista:

texbox

Publicado por marco (12 intervenciones) el 08/09/2009 06:18:13
hola buenas noches tengo una consulta, diseñe un texbox con esta macro

Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub

el asunto es que cuando ingreso un numero al almacenarlo lo almacena como texto hay modo que lo almacene con formato de numero

muchas gracias
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:texbox

Publicado por Cesar (57 intervenciones) el 08/09/2009 16:53:31
Esto debe funcionar...

Private Sub TextBox1_Change()
Range("A9").Select
ActiveCell.FormulaR1C1 = val(TextBox1)
End Sub

pero solo va a funcionar si lo que pones en el text es numero, si no, da error.
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:texbox

Publicado por marco (12 intervenciones) el 08/09/2009 17:05:45
Cesar eres muy amable por tu apoyo, sí funcionó, gracias
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:texbox

Publicado por MARCO (12 intervenciones) el 08/09/2009 18:08:38
cesar disculpa la molestia pero tendras también solucion para que el formato del textbox sea de fecha

saludos
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:texbox

Publicado por Cesar (57 intervenciones) el 09/09/2009 05:42:25
Por supuesto. Ve en la ayuda de VBA la funcion FORMAT, y la funcion CDATE

Si lo que quieres es que un text devuelva un formato cualquiera, debes usar FORMAT
Por ejemplo: Si en tu text ingresas 10/9 por 10 sep, y quieres que se convierta en 2009/09/10 (formato yyyy/mm/dd) , debes escribir lo siguiente:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1, "yyyy/mm/dd")
End Sub

lo que hace este evento es que cada vez que dejas el text, VBA convierte el texto en fecha, con el formato que tu pongas (Yo puse año/mes/dia, tu puedes ponerlo como quieras, dia/mes/año; año/dia/mes)

Debes preveer tambien que el usuario ponga un valor que no se pueda convertir en fecha
por ejemplo, en el cuerpo del evento pondrias:

if isdate(textbox1) then
TextBox1 = Format(TextBox1, "yyyy/mm/dd")
end if

Aqui lo que hace es si VBA puede convertir en fecha lo que hay en textbox1, le aplicara el formato que definas, de lo contrario no hara nada. Esto porporciona una salida elegante a tu aplicacion, y evita los molestos errores.

Saludos desde Arequipa, Peru
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