Como dar formato a una celda de excel desde VBA

Estoy haciendo una consulta de Provvedores y de Clientes y cunando tratod de cargar datos desde un formulario no logro dar formato de tipo de datos (número, texto, hora.. Etc) a las celdas de excel desde VBA, y cuando ingreso datos desde este formulario a una hoja me en las celdas donde igresé números me da un error "número almacendo como texto"
Si pudieras ayudarme te lo agradecería muchísimo
El código que uso para cagar el dato en la celda desde el Text_Box es:
Private Sub client_id_Change()
Range("S3").Select
ActiveCell.FormulaR1C1 = client_id
End Sub

1 Respuesta

Respuesta
1
No se si es esto lo que quieres hacer.
    Range("C5").Select
    Selection.NumberFormat = "0.00"
    Range("C5") = 3.1
Con esto le pones formato numérico a la celda C5 y luego le asignas el valor numérico 3.1
Gracias por tu pronta respuesta!
Sabés que no me funcionó pero debe ser por la forma que tengo armado el código.
Te paso un screenshoot de lo que hago para que tengas más idea
http://mguruguay.com/images/preview_1.jpg
Acá se ve en más detalles el formulario crea un cliente en la hoja correspondiente
1 - el textBox "client_id" muestra el valor de S4 +1 generado por el botón client_num y a su vez escribe en S3 ese valor
2 y 3 - es algo curioso y es que por más que escribo los datos en el text box me los carga en la hoja sin formato y con el color de fuente blanco menos para el campo del nombre del cliente.
El código que uso para esto anterior es:
******************************************
Private Sub Client_num_Click()
ActiveSheet.Unprotect "pass" 'desproteger hoja
ActiveCell.Select
client_id = ActiveCell.Value + 1 'Le paso el valor  de la celda activa (S4)+1 al textBox "client_id"
Range("A3").Select 'Selecciono la celda donde se va a escribir el nombre del cliente
client_name.SetFocus 'Me posiciono en el textBox donde se va a escribir el nombre del cliente
End Sub
Private Sub client_id_Change()
Range("S3").Select
ActiveCell.FormulaR1C1 = client_id 'Le digo que escriba el dato de "client_id" en S3
End Sub
****************************
Le incluí la línea que tu me propusiste pero sin decimales
Range("S3").Select
Selection.NumberFormat = "0"
ActiveCell.FormulaR1C1 = client_id
Pero no resultó me sigue dando el siguiente error después de cargar el dato y además lo formatea con el color de fuente en blanco:
http://mguruguay.com/images/preview_2.jpg
Desde ya disculpa por tantas molestias y gracias por tu tiempo.
Saludos
Pablo Vidal
Montevideo Uruguay
Quizás porque al ser un textbox de donde coges el dato para almacenarlo en la hoja.
Antes de hacer la asignación mete el contenido de cliente_id(textbox) en una variable numérica (integer) y de ahí pasala a la celda aplicándole el formato que te pase en la respuesta anterior.
A mi me funciona ¿?
Ya me dirás
<entendí lo que me planteás, pero si pudieras ayudarme con lo de la variable sería fantástico, y aque soy nuevo y estoy recién haciendo mis primeros proyectos y no tengo una formación sólida en lo qua  el lenguaje de VBA se refiere.
Gracias
1.- Te declaras una variable
Private Sub client_id_Change()
dim idCliente as integer
Range("S3").Select
Selection.NumberFormat = "0"
luego le asignas el valor de tu textbox
idCliente = client_id
despues se la pasas a la celda activa
ActiveCell.FormulaR1C1 = idCliente
Y a ver si te lo hace correcto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas