Lista de comandos para modificar una hoja con macros VBA

¿Quieres aprender a automatizar tareas con macros en Excel?

Apúntate al curso en linea para convertirte en un crack de las automatizaciones con macros de Excel

¿Recién inicias en el mundo de la programación de macros en Excel? Y quieres aprender comandos e instrucciones que te ayuden a practicar y desarrollar tu propias macros dentro de la hoja de cálculo.

No sabes de que hablo, 👉 ¿Qué son las macros y para que me sirven?

Trabajando en Excel tienes la posibilidad de modificar una hoja de trabajo, haciendo uso de los comandos desarrollados para tal fin.

En este artículo te presentamos los comandos más comunes para programar una hoja con vba:

¿Estás listo para programar Excel?

</> Comando SHEET

Sheets es una colección que puede contener objetos Chart o Worksheet. Esta colección es de gran utilidad para trabajar con hojas de diferentes tipos.

Ejemplos:

Para imprimir las hojas del libro activo:

Sheets.PrintOut

Para agregar una hoja al final del libro actual:

Sheets.Add After:=ActiveSheet

Para renombrar la hoja 1:

Sheets(«Hoja1»).Name = «Nuevo Nombre Hoja»

Para agregar dos hojas de gráfico al libro actual, y colocarlas detrás de la hoja dos del libro:

Sheets.Add type:=xlChart, count:=2, after:=Sheets(2)

Para activar la hoja denominada Sheet1:

Sheets(«Sheet1»).Activate

</> Comando RANGE

El objeto Range es un objeto que hace referencia a una celda específica, a un conjunto de celdas (juntas o separadas), a una fila entera o a una columna.

Ejemplos:

Selecciona la celda A1 de la hoja activa:

Range(«A1»).select

Selecciona el rango desde A1 hasta B20 en la hoja activa:

Range(«A1: B20»).Select 

Para seleccionar la celda A1 en la hoja 2:

Worksheets(2).Range(«A1»).Select     

Para seleccionar celdas separadas en la hoja actual:

Range(«A1,A3,C5»).Select                

Inserta el valor 35 en el la celda A1 de la hoja activa:

Range(«A1») = 35

Copia el valor en el la celda A1 de la hoja activa:

Range(«A1») .Copy

Pega el valor copiado en el la celda A2 de la hoja 2:

Sheets(«Hoja2»).Range(«A2»).Select
ActiveSheet.Paste

</> Comando OFFSET

La función OFFSET devuelve una referencia a un rango que es un número específico de filas y columnas de otro rango o celda.

Sintaxis

Range(«A1»).OFFSET(RowOffset, ColumnOffset)

¿Quieres aprender Excel desde Cero?
Inscríbete GRATIS y conviértete en un master en Excel

  • RowOffset indica el número de filas que deseas moverte desde la fila seleccionada.
  • ColumnOffset es un entero que señala cuántas columnas deseas moverte desde la fila seleccionada.

Ejemplo:

Selecciona la celda C6, después de desplazarse 5 filas hasta A6, y luego 2 columnas a la derecha.

Range(«A1»).OFFSET(5, 2).Select

Dos columnas a la derecha de la celda C6, escribe la palabra APROBADO.

Range(«C6»).OFFSET(0, 2) = «Aprobado»

Incrementa en 1, el valor de la celda A1 y lo escribe una fila abajo

Range(«A1»).OFFSET(1, 0) = Range(«A1») + 1

</> Comando CELLS

Cells es una propiedad que se emplea para especificar una celda o todas las celdas en la hoja de trabajo.

Sintaxis

Cells(RowIndex, ColumnIndex)

  • RowIndex indica el número de la fila al que deseas referirte.
  • ColumnIndex señala el número de columna al que deseas referirte.

Ejemplo:

Devuelven la celda «B4» en una hoja de trabajo activa.

Expresión = Cells (4, 2)

</> Comando WORKBOOKS

Workbook es un objeto de la colección Workbooks. Esta colección contiene los objetos Workbook abiertos actualmente en Microsoft Excel.

Ejemplo:

En el siguiente ejemplo se activa el libro uno:

Workbooks(1).Activate

Para activar la Hoja1 en el libro Factura.xls:

Workbooks(«Factura.xls»).Worksheets(«Sheet1»).Activate

</> Comando INTERIOR.COLOR

La propiedad Interior.Color devuelve o define el color de un objeto. Se debe utilizar en conjunto con la función RGB para crear el valor de un color.

Sintaxis

expresión.Color

  • expresión devuelve un objeto Interior.

Ejemplo

Aplica letra color ROJO al contenido de la celda D6:

Range(«D6»).Font.Color = vbRed

Aplica fondo color AZUL al contenido de la celda D5:

Range(«D5»).Interior.Color = vbBlue

Para establecer el color de las etiquetas de marca de graduación en el eje de valores de Chart1:

Charts(«Chart1»).Axes(xlValue).TickLabels.Font.Color = RGB(0, 255, 0)

</> Comando FONT

El comando FONT abarca los atributos de fuente tales como el nombre, tamaño, el color, etc., de un objeto.

Ejemplo:

Para dar formato de negrita a las celdas A1:B5

Worksheets(«Sheet1»).Range(«A1:B5»).Font.Bold = True

</> Comando ACTIVECELL

El comando ActiveCell se refiere al celda seleccionada actualmente en una hoja de cálculo. Una vez que la celda se encuentre seleccionada se le pueden asignar valores o funciones.

Ejemplo:

Para asignar el valor de 5 a la celda activa:

ActiveCell.Value = 5

</> Comando CLEARCONTENTS

ClearContents es una función que se utiliza para borrar el contenido en un rango dado de celdas o grupo de celdas.

Ejemplo:

Se borra el contenido del rango de celdas A1:C3.

Range(«A1:C3»).ClearContents

Ahora ya conoces los comandos básicos, toca sentarse a programar, así que mucho éxito.

👉Si tienes alguna pregunta, te leo en los comentarios.

Gerardo Castro

Ing. Programador VBA y .NET
Me encanta programar en Excel y buscar nuevas formas de hacer las tareas más rápido.

5 comentarios en «Lista de comandos para modificar una hoja con macros VBA»

  1. Hola, se puede usar una variable en lugar del nombre de la hoja en esta fórmula:
    ActiveCell.FormulaR1C1 = «=MID(‘Karen Orozco’!R1C1,9,LEN(‘Karen Orozcoz’!R1C1))»

    si es así, cómo se puede hacer?

    Responder
    • Hola Bertha gracias por tu comentario.
      Solo debes usar el nombre de la hoja, si la fórmula utiliza el valor de otra hoja distinta a donde colocas esta fórmula.
      Es decir si el valor está en la misma hoja, puedes usar:
      ActiveCell.FormulaR1C1 = “=MID(R1C1,9,LEN(R1C1))”

      Espero que esto te ayude, saludos!

      Responder
  2. Tengo un problema deseo construir una tabla con datos, de una interfaz inicial, deseo copiar los valores en a2, c2, a4,c4, a6, c6 y a8,c8 en una hoja denominada operaciones, en la primera parte se coloca en a3 y pega lo valores copiados.
    Requiero que baje una celda en operaciones para que siga alimentandose la tabla con cada ejecucion de la macro.
    Que comando necesito para bajar esa celda de forma reiterativa?

    Responder
    • Hola Héctor gracias por tu comentarios,

      Para lograr lo que comentas necesitas crear un código secuencial en la macro para que brinque automaticamente después de cada celda, existen diferentes método que puedes aplicar te recomiendo investigar más sobre los siguientes comandos:
      Ciclos FOR / DO / WHILE
      Comando OFFSET
      Comando APPLICATION.WORKSHEETFUNTIONS.COUNTA

      Espero que esto te ayude a continuar tu proyecto.
      Saludos!

      Responder

Deja un comentario

Artículo añadido al carrito.
0 artículos - $0.00