Como dar formato a celdas automaticamente





En el presente post muestro como dar formato a las celdas en forma automática, para ello determina el rango variable y le otorga el formato determinado en la macro, el objetivo del ejemplo es dar formato a una tabla en Excel, para que funcione correctamente la macro se debe posicionar en la primer fila y primer columna de la tabla y ejecutar la macro que dará formato determinando automáticamente el rango de la tabla.

Recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  


La macro determina el rango donde se encuentran los datos a dar formato,  con la variante que se pueden agregar filas o columnas y la macro determinará en forma automática el rango al cual se le debe dar formato.

El formato consiste en darle a la tabla que está en Excel bordes; a los números da formato agregando separador de miles y dos dígitos después de la coma, el formato de fecha "dd/mm/yyyy" a los datos de fecha, alinea en forma centrada los datos; tamaño de fuente igual a 10 y formato de negrita, si se requiere aumentar el tamaño de la fila se puede usar el código: Range ("A1"). RowHeigt=30; el único requisito es que para dar formato a la tabla se debe posicionar en la primer fila y columna de la tabla.

En el vídeo encontrarás una explicación más gráfica y detallando paso a paso su funcionamiento, te sugiero que lo veas, de esa manera podrás modificar la macro a tu necesidad, por favor suscribe el canal y blog, recibirás en tu una notificación en tu correo cada vez que se presente un post con ejemplos de macro, que puedes descargar gratuitamente.

Suscribe a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.






Código que se inserta en un módulo




Sub formato()
Application.ScreenUpdating = False
Dim pf As Long, uf As Long
Set a = Sheets(ActiveSheet.Name)
pf = ActiveCell.Row
pc = ActiveCell.Address
pwc = Mid(pc, InStr(pc, "$") + 1, InStr(2, pc, "$") - 2)

uf = a.Range("A" & Rows.Count).End(xlUp).Row
uc = a.Cells(1, Columns.Count).End(xlToLeft).Address
wc = Mid(uc, InStr(uc, "$") + 1, InStr(2, uc, "$") - 2)

a.Range(pwc & pf & ":" & wc & uf).Borders(xlInsideHorizontal).LineStyle = xlContinuous
a.Range(pwc & pf & ":" & wc & uf).Borders(xlInsideVertical).LineStyle = xlContinuous
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeLeft).LineStyle = xlContinuous
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeLeft).Weight = xlMedium
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeTop).LineStyle = xlContinuous
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeTop).Weight = xlMedium
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeBottom).LineStyle = xlContinuous
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeBottom).Weight = xlMedium
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeRight).LineStyle = xlContinuous
a.Range(pwc & pf & ":" & wc & pf).Borders(xlEdgeRight).Weight = xlMedium


a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeLeft).LineStyle = xlContinuous
a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeLeft).Weight = xlMedium
a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeTop).LineStyle = xlContinuous
a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeTop).Weight = xlMedium
a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeBottom).LineStyle = xlContinuous
a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeBottom).Weight = xlMedium
a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeRight).LineStyle = xlContinuous
a.Range(pwc & pf + 1 & ":" & wc & uf).Borders(xlEdgeRight).Weight = xlMedium

a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeLeft).LineStyle = xlContinuous
a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeLeft).Weight = xlMedium
a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeTop).LineStyle = xlContinuous
a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeTop).Weight = xlMedium
a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeBottom).LineStyle = xlContinuous
a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeBottom).Weight = xlMedium
a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeRight).LineStyle = xlContinuous
a.Range(pwc & uf & ":" & wc & uf).Borders(xlEdgeRight).Weight = xlMedium

'a.Range("C" & pf + 1 & ":" & wc & uf).NumberFormat = "dd/mm/yyyy"
a.Range("C" & pf + 1 & ":" & wc & uf).NumberFormat = "#,##0.00;-#,##0.00"
a.Range(pwc & pf & ":" & wc & pf).HorizontalAlignment = xlCenter
a.Range(pwc & pf & ":" & wc & pf).VerticalAlignment = xlCenter
a.Range(pwc & pf & ":" & wc & pf).Font.Size = 10
a.Range(pwc & pf & ":" & wc & pf).Font.Bold = True
'a.Range(pwc & pf).RowHeight = 30

'a.Cells(uf, pwc) = "Total"
'a.Range(pwc & uf & ":" & wc & uf).Font.Bold = True

'For j = 4 To 11
'a.Cells(uf, j) = Application.WorksheetFunction.Sum(a.Range(Cells(pf + 1, j), Cells(uf - 1, j)))
'Next j

'a.Range(pwc & pf & ":" & wc & pf).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub

Sub borraformato()
ActiveSheet.Cells.ClearFormats
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends