Curso Excel VBA y Macros – Cap. 10 – Propiedades más usadas para trabajar con rangos de celdas

<<CURSO COMPLETO EN YOUTUBE>>

Siguiendo con este maravilloso curso de Macros en Excel, ahora nos toca abordar el tema de las Propiedades y Métodos para rangos y celdas que más se usan, o por lo menos las que más uso conforme a mi experiencia de años de usar VBA.

En el capítulo anterior vimos Cómo hacer referencia a rangos y celdas con VBA, incluso vimos algunas propiedades y métodos. Hicimos referencias usando el objeto Range y la propiedad Cells, dando coordenadas de filas y columnas a este último.

Ver video Capítulo 10 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

ActiveCell (Celda activa)

Usamos la propiedad ActiveCell para referirnos a la celda activa. Es importante mencionar que será la celda activa ubicada en el archivo y la hoja activos. Si tenemos varios archivos abiertos o uno con varias hojas, será importante confirmar que estamos trabajando en la hoja correcta.

Selection

La propiedad Selection puede aplicarse a cualquier objeto seleccionado, desde un rango de celdas, hasta imágenes.

Propiedades de rangos y celdas

Recordemos que las propiedades son características que describen a los objetos y los objetos en VBA pueden ser rangos de celdas, hojas, archivos, gráficos, etc.

Las propiedades en VBA pueden ser de 3 tipos, solo lectura, solo escritura o lectura escritura. En la siguiente tabla vemos las propiedades más usadas para rangos de celdas.

NOMBREDESCRIPCIÓNTIPO
AddressDevuelve la referencia a un rango de celdasSólo lectura
ColumnsDevuelve las columnas de un rangoSólo lectura
RowsDevuelva la filas de un rangoSólo lectura
CountDevuelve el conteo de celdas de un rango. Aplica para columnas y filasSólo lectura
CurrentRegionRegión activa con respecto a un rango. De manera manual lo obtenemos usando Control + Shift + EspacioSólo lectura
EntireRowHace referencia a una fila completaSólo lectura
EntireColumnHace referencia a una columna completaSólo lectura
FontPermite leer o modificar el formato de celdasLectura / escritura
FormulaDevuelve o escribe fórmulas de celdas. Debemos usar el nombre de funciones en InglésLectura / escritura
FormulaLocalPodemos asignarle una fórmula a las celdas en el idioma configurado en la PCLectura / escritura
HasFormulaDevuelve VERDADERO si la celda contiene una fórmulaSólo lectura
InteriorPermite formatear el fondo de un rango de celdasLectura / escritura
NumberFormatPermite asignar un formato de número a un rango celdasLectura / escritura
OffsetNos permite desplazarnos n cantidad de filas o columnas. DESREF en ExcelLectura / escritura
ResizePermite cambiar el tamaño de una rangoSólo lectura
ValueDevuelve o escribe un valor en un rango de celdasLectura / escritura

Address. Devolvemos la dirección de un rango. En este caso devolveremos la referencia de la propiedad Selection.

MsgBox Application.Selection.Address

Columns, Rows. Haremos un conteo de filas y columnas, aplicando la propiedad Count.

MsgBox Range(“A1:D2”).Columns.Count

MsgBox Range(“A1:D2”).Rows.Count

Count. Devolveremos un conteo de celdas en un rango.

MsgBox Range(“A1:D2”).Count

CurrentRegion. Mostraremos la dirección del rango actual en base a la celda A1.

MsgBox Range(“A1”).CurrentRegion.Address

EntireRow y EntireColumn. Insertaremos y eliminaremos filas y columnas completas

Range(“F1”).EntireColumn.Insert

Range(“F1”).EntireColumn.Delete

Range(“F1”).EntireRow.Insert

Range(“F1”).EntireRow.Delete

Font. Le cambiamos la fuente a una celda.

Cells(1,1).Font.Size = 20

Cells(1,1).Font.Name = Arial

Formula. Le asignamos una fórmula a un rango de celdas. Los nombres de las funciones deber ser en Ingles.

Range(“A1:A10”).Formula = “=SUM(10,20)”

FormulaLocal. Insertaremos una fórmula en un rango de celdas expresada en el idioma la de la PC, en este caso español.

Range(“B1:B10”).FormulaLocal = “=SUMA(10,20)”

HasFormula. Esta propiedad nos devuelve VERDADERO si el rango contiene una fórmula, de lo contrario devuelve FALSO.

MsgBox Range(“A1”).HasFormula

Interior. Le asignaremos color azul a un rango de celdas expresadas con la propiedad vbBlue.

Range(Cells(1, 1), Cells(5, 5)).Interior.Color = VBA.vbBlue

NumberFormat. Cambiamos formato de texto a una celda, le asignaremos formato de fecha.

Range(“A1”).NumberFormat = “yyyy/mm/dd”

Offset. Activaremos un rango en referencia a la celda A1. Nos moveremos 10 filas hacia abajo y 10 columnas hacia la derecha.

Range(“A1”).Offset(10, 10).Select

Resize. Tenemos un rango de 10 filas y 10 columnas, le cambiaremos el tamaño y le asignaremos un color de fondo.

Range(“A1:B10”).Resize(5, 5).Interior.Color = RGB(200, 150, 109)

Value. Vamos a mostrar un valor de una celda.

MsgBox Range(“A1”).Value

EJEMPLOS

En este ejemplo le pondremos color verde a los encabezados de una tabla.

Sub Encabezado()

Dim razgo As Range

Set rango = Range("a1").CurrentRegion

'rango.Resize(1, rango.Columns.Count).Select

'rango.Resize(1, rango.Columns.Count).Interior.Color = VBA.vbGreen

End Sub

Y ahora le ponemos un color amarillo al cuerpo de la tabla.

Sub CuerpoTabla()

Dim rango As Range

Set rango = Range("a1").CurrentRegion

'Range("A1").Offset(1, 0).Resize(rango.Rows.Count - 1, rango.Columns.Count).Select

'Range("A1").Offset(1, 0).Resize(rango.Rows.Count - 1, rango.Columns.Count).Interior.Color = VBA.vbYellow

End Sub

Usaremos la siguiente instrucción para borrar formatos de las celdas.

Range(“a1”).CurrentRegion.ClearFormats

Descargar archivo de ejemplo

010 – Propiedades más usadas en rangos de celdas.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

También te podría gustar...