Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Seleccionar o hacer referencia a hojas, rangos y celdas


.

Cuando se programa Excel con  VBA, siempre es necesario seleccionar o referenciar a hojas, celdas, filas, columnas o rangos para realizar una  macro de Excel o VBA,  aquí les presento las distintas formas de seleccionar o hacer esas referencias, en el post se presenta también como hacer esas  referencias usando variables lo cual  es también bastante usado en macros de VBA; los ejemplos de macros que se han publicado en este sitio web; como ser copiar varios ítems seleccionados de  un  listbox a celdas de Excel, o como llenar un listbox dependiendo del dato seleccionado en  un combobox, o  también como llenar un  listbox que depende a su vez de otro listbox y de un combobox; se puede observar el frecuente uso de la selección o referencia a celda, lo cual es muy común a toda macro de Excel o procedimiento de VBA para Excel que sea desarrollado usando Visual Basic para Aplicaciones o VBA; referenciar  a celdas también  tiene uso si se trabaja con userform, esto se puede observar en también en el procedimiento que calcula un saldo entre fecha y fecha o en este  procedimiento para buscar datos en tres columnas, en fin son un sin número de procedimientos que requieren saber hacer  referencia o seleccionar celdas, aquí te presento los más comunes.

Antes de seguir 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.

  

A continuación se expone los distintos códigos que hacen referencia o seleccionan hojas, celdas, filas, columnas o rangos con  su correspondiente explicación que cual es el resultado logrado  con el  mismo.

‘Hacer referencia a todas las hojas del libro activo
ActiveWorkbook.Sheets.Select

‘Hacer referencia a la hoja2
Sheets(«Hoja2»).Select

‘Hacer referencia a la hoja que se encuentra en la posición 2 sin importar el nombre
Sheets(2).Select

‘Hacer referencia a la hoja de la pestaña anterior a la activa
ActiveSheet.Previous.Select

‘Hacer referencia a la hoja de la pestaña posterior a la activa
ActiveSheet.Next.Select

‘Hacer referencia a una celda de otro libro
Application.Goto Workbooks(«Libro1.xlsm»).Sheets(«Sheet1»).Cells(7, 6)

‘Hacer referencia a una hoja guardando en una variable el nombre de la hoja activa, previa a la activa y posterior a la activa
Dim sheetnom As String
‘Se guarda el nombre de la hoja activa, previa a la activa y posterior a la activa
sheetnom = ActiveSheet.Name
sheetnom = ActiveSheet.Previous.Name
sheetnom = ActiveSheet.Next.Name

‘Hacer referencia  a una hoja guardando en una variable el número de hoja, actual, previa a la actual y siguiente
Dim sheetnumb As Byte
sheetnumb = ActiveSheet.Index
sheetnumb = ActiveSheet.Previous.Index
sheetnumb = ActiveSheet.Next.Index

‘Selecciona la celda b8 de la hoja 1
Sheets(«hoja1»).Select
Range(«C8»).Select

‘Hacer referencia de otra forma a la misma celda c8
Cells(8, 3).Select

‘También podemos hacer  referencia a la celda C8 pero de la hoja 2
Sheets(«hoja2»).Select
Cells(8, 3).Select

‘Selecciona todas las celdas de la hoja
Cells.Select

‘Se puede seleccionar la celda c8 de la hoja activa mediante
ActiveSheet.Cells(8, 3).Select

‘Selecciona el rango continuo c2 a d10
Range(«C2:D10»).Select

‘Referencia de otra forma el rango c2:d10
Range(Cells(2, 3), Cells(10, 4)).Select

‘Referenciar  de otra forma el rango c2:c10
Range(«C2», «D10»).Select

‘Seleccionar toda la columna  B
Range(«A:A»).Select

‘Seleccionar todas las columnas desde la columna A hasta la columna C
Range(«A:C»).Select

‘Seleccionar toda la fila 4
Range(«4:4»).Select

‘Seleccionar todas las filas desde la fila 1 hasta la fila 5
Range(«1:5»).Select

‘Seleccionar la unión de dos o más rangos especificados, similar a seleccionar  y tener apretado tecla ctrl
Application.Union(Range(«A2: C5»), Range(«F6: H12»)).Select

‘Seleccionar dos más columnas de columnas no contiguas de longitud variable
Set a = Range(«A1», Range(«A1»).End(xlDown))
Set b = Range(«E1», Range(«E1»).End(xlDown))
Union(a, b).Select

En los vídeos que sigue se muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Las 1000 mejores macros de Excelbuscar en listbox mientras escribes en textbox, como copiar tablas vinculadas de Excel a Wordconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

En el post siguiente continua el tutorial sobre las distintas formas de hacer referencias a celdas, rangos y hojas.

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