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.

NOMBRE DESCRIPCIÓN TIPO
Address Devuelve la referencia a un rango de celdas Sólo lectura
Columns Devuelve las columnas de un rango Sólo lectura
Rows Devuelva la filas de un rango Sólo lectura
Count Devuelve el conteo de celdas de un rango. Aplica para columnas y filas Sólo lectura
CurrentRegion Región activa con respecto a un rango. De manera manual lo obtenemos usando Control + Shift + Espacio Sólo lectura
EntireRow Hace referencia a una fila completa Sólo lectura
EntireColumn Hace referencia a una columna completa Sólo lectura
Font Permite leer o modificar el formato de celdas Lectura / escritura
Formula Devuelve o escribe fórmulas de celdas. Debemos usar el nombre de funciones en Inglés Lectura / escritura
FormulaLocal Podemos asignarle una fórmula a las celdas en el idioma configurado en la PC Lectura / escritura
HasFormula Devuelve VERDADERO si la celda contiene una fórmula Sólo lectura
Interior Permite formatear el fondo de un rango de celdas Lectura / escritura
NumberFormat Permite asignar un formato de número a un rango celdas Lectura / escritura
Offset Nos permite desplazarnos n cantidad de filas o columnas. DESREF en Excel Lectura / escritura
Resize Permite cambiar el tamaño de una rango Sólo lectura
Value Devuelve o escribe un valor en un rango de celdas Lectura / 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.

You may also like...