Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Seleccionar o hacer referencia a hojas, rangos y celdas


(adsbygoogle = window.adsbygoogle || []).push({});

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.

function onYtEvent(payload) {
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.


(adsbygoogle = window.adsbygoogle || []).push({});

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      

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comentarios (24)

You really make it appear so easy along with your presentation but I in finding this matter to be really one thing that I feel I might by no means understand.
It sort of feels too complex and extremely vast for me. I am taking a look ahead in your subsequent put up, I’ll
attempt to get the grasp of it!

Responder

We’re a group of volunteers and starting a brand new scheme
in our community. Your website offered us with useful information to work on.
You’ve done an impressive task and our whole group can be thankful to you.

Responder

Superb blog! Do you have any tips and hints for aspiring writers?

I’m hoping to start my own blog soon but I’m a little lost on everything.

Would you advise starting with a free platform
like WordPress or go for a paid option? There are so many choices out there that I’m
completely confused .. Any ideas? Kudos!

Responder

Very rapidly this site will be famous among all blogging and site-building people, due to
it’s nice posts

Responder

Superb post but I was wondering if you could write a
litte more on this subject? I’d be very thankful if you could
elaborate a little bit further. Appreciate it!

Responder

I am extremely impressed with your writing skills as neatly as
with the layout on your blog. Is this a paid subject or did
you customize it yourself? Either way stay up the nice quality writing, it is rare to peer a nice blog like
this one these days..

Responder

My relatives all the time say that I am killing my time
here at net, however I know I am getting know-how all the
time by reading thes nice posts.

Responder

If some one wishes expert view on the topic of blogging after that i recommend
him/her to pay a visit this weblog, Keep up the good work.

Responder

I’m gone to tell my little brother, that he should also visit this website on regular basis to take updated from latest
reports.

Responder

I blog quite often and I seriously thank you for your information.
This great article has really peaked my interest. I will bookmark your site and keep checking for new information about once per week.
I subscribed to your RSS feed too.

Responder

We are a group of volunteers and opening a new scheme in our community.
Your site provided us with valuable information to work
on. You have done an impressive job and our entire community will be grateful to you.

Responder

Great goods from you, man. I’ve keep in mind your stuff previous to and you are just extremely
fantastic. I really like what you have got right here, certainly like what you are stating and the way by which you say it.
You’re making it enjoyable and you still care for to keep it smart.
I can not wait to learn far more from you. That is actually a great
web site.

Responder

After looking over a handful of the blog posts on your site, I truly
like your way of writing a blog. I added it to my bookmark webpage
list and will be checking back in the near future.

Please visit my web site as well and let me know your opinion.

Responder

I’ve been surfing online more than 2 hours today, yet I never found any interesting article
like yours. It is pretty worth enough for me. In my view, if all website owners and
bloggers made good content as you did, the net will be
much more useful than ever before.

Responder

Thanks very interesting blog!

Responder

This is very interesting, You’re a very skilled blogger.
I’ve joined your rss feed and look forward to seeking more of
your fantastic post. Also, I’ve shared your web site in my social
networks!

Responder

What’s up mates, good paragraph and fastidious
urging commented here, I am really enjoying by these.

Responder

I have read several good stuff here. Definitely price bookmarking for revisiting.
I wonder how a lot effort you place to make this type
of fantastic informative website.

Responder

It’s amazing designed for me to have a web page, which is helpful in favor of my knowledge.
thanks admin

Responder

I’m amazed, I must say. Seldom do I encounter a blog that’s both equally educative and
engaging, and let me tell you, you have hit the nail on the
head. The problem is something that too few folks are speaking intelligently
about. I’m very happy I found this during my search for something relating to
this.

Responder

Hi mates, its wonderful piece of writing about cultureand entirely defined, keep it up
all the time.

Responder

Hi there, I want to subscribe for this webpage to get most recent updates, therefore where can i do it please assist.

Responder

When some one searches for his necessary thing,
thus he/she needs to be available that in detail, thus that thing is maintained over here.

Responder

Hi there to every one, it’s truly a nice for me to go to see this web page,
it consists of helpful Information.

Responder