Activar una macro desde la barra de acceso rápido en Excel 2007

sábado, diciembre 13, 2008

En Excel existen varios métodos para activar una macro. Podemos asignarle una combinación de teclas, podemos ligar la macro a un objeto y en las versiones anteriores a Excel 2007 podíamos ligarlo a un icono en alguna barra de herramientas (o crear una barra de herramientas con el icono) e inclusive incluirla en un menú.

En Excel 2007 podemos, como en las versiones anteriores, ligarla la macro a objetos o asignarle una combinación de teclas. Pero no tenemos barras de herramientas donde poner el icono o menús donde incluir la macro.

Sin embargo tenemos la alternativa de poner un icono ligado a la macro en la barra de acceso rápido.

Supongamos que queremos poner un icono para correr una macro que agrega hojas a un cuaderno a partir de los valores de una lista. Los pasos son los siguientes (la macro tiene que estar en un cuaderno abierto o en Personal .xls):

1 – abrimos el menú de Opciones de Excel – Personalizar (o apretando la flecha en el extremo derecho de la barra de acceso rápido). En la ventanilla ”Comandos disponibles en” elegimos Macros




2 – En la ventanilla inferior veremos una lista de macros disponibles, ordenadas alfabéticamente



En caso de no ver el nombre completo, podemos apuntar con el señalador del mouse y después de unos instantes veremos el nombre completo de la macro. Seleccionamos la macro y apretamos el botón “Agregar”



3 – Para cambiar el icono que Excel pone por defecto seleccionamos la macro que acabamos de agregar y apretamos el botón “Modificar”



Elegimos un icono adecuado. En la ventanilla “Nombre para mostrar” cambiamos el texto que Excel a puesto por defecto (el nombre de la macro) por un texto descriptivo. Finalmente apretamos el botón “Aceptar”.

Excel agrega el icono a la barra de acceso rápido y al apuntar con el señalador del mouse podemos ver la descripción de la acción que ejecuta la macro.



Si tenemos una varias macros que usamos con frecuencia, podemos agregarlas a la barra de acceso rápido con facilidad.


Technorati Tags:

30 comments:

Tony,  14 abril, 2009 17:56  

Oye tenia un detalle a querer generar un icono con este nuuevo oficce, pero gracias por tu aporte salio.

Gracias y Excelente aporte .

Gerson Pineda H 16 abril, 2009 20:28  

Hola Jorge
Todo bien, pero nose que hago mal, donde se encuentra generalmente el libro personal.xls en office 2007?, para poder correr la macro cuando uno guste, nose que estoy haciendo mal, pero no me funciona, probe de varias formas (en un libro abierto me funciona bien), pero quiero usarla ya por defecto!

La macro esta excelente...

Gracias

Jorge L. Dunkelman 16 abril, 2009 21:03  

Hola Gerson
fijate en esta nota donde explico como encontrar donde está guardado el Personal.xlsb

Gerson Pineda H 18 abril, 2009 01:33  

Hola Jorge
Gracias por tu tiempo!!

Sigo tus instrucciones y luego te aviso, como me fue

Saludos

Susana,  03 noviembre, 2009 12:50  

Hola Jorge,

Lo primero, gracias por este magnífico Blog que tanto nos está ayudando a los que estamos empezando a descubrir un poco más en serio el Excel.

Mi pregunta es si sería posible asignar a la macro un icono personalizado, en mi caso el logo de una empresa.

Muchas gracias de antemano y un saludo.

Jorge L. Dunkelman 03 noviembre, 2009 17:18  

Susana,
gracias por los conceptos. En cuanto a tu consulta, en principio si es posible, pero qué versión de Excel estás usando (supongo que 2007, pero pregunto por las dudas) y dónde tiene que estar ubicado el icono?

Susana,  03 noviembre, 2009 22:58  

Hola Jorge,

Gracias por contestar tan rápido. Uso Excel 2007, y el icono puede estar ubicado en la barra de acceso rápido. La idea es poder poner a funcionar una macro con cualquier libro de Excel, pero sólo cuando el usuario quiera (por eso no lo hago a través de un formulario que se inicie al abrir el libro), así que creo que lo mejor es ponerlo en dicha barra, aunque admito ideas (acabo de empezar en esto así que aún no se bien de qué opciones dispongo).

Muchas gracias por la ayuda, un saludo.

Jorge L. Dunkelman 04 noviembre, 2009 22:30  

Susana, de momento que una macro está ligado a un icono, ésta correrá solamente cuando el usuario apriete el icono. Una macro que esté disponible para cualquier libro Excel tiene que estar guardada en el el Personal.xlsb (o Personal.xls, si trabajamos con versiones anteriores a XL2007)

Susana,  04 noviembre, 2009 22:35  

Hola Jorge,

Gracias de nuevo por contestar. Entonces, en cuanto a la pregunta inicial de asignar un icono personalizado a la macro, ¿cómo se podría conseguir?

Un saludo

Susana,  12 noviembre, 2009 11:08  

Hola Jorge,

Me han comentado que para poder asignar un icono personal (y no de los que ofrece Excel) a una macro para conseguir un acceso directo en la barra de acceso rápido, tendría que programar una subrutina relacionada con scripts. ¿No hay alguna otra forma más sencilla de conseguirlo?

Un saludo

Jorge L. Dunkelman 12 noviembre, 2009 20:24  

Hola Susana,
no conozco ningún otro método fuera del que mencionás.

Susana,  12 noviembre, 2009 21:42  

Gracias igualmente Jorge, habrá que ponerse manos a la obra entonces.

Anónimo,  04 diciembre, 2009 21:55  

Mil gracias, me has hecho el dia : )=

Ronny Marcos,  25 mayo, 2010 06:55  

Hola
tengo una macro que ejecuto desde VFP9, al correrla en office 2007 en ingles funciona correctamente, pero cuando se ejecuta en una maquina que tiene office 2007 en español no reconoce algunos comandos, por ejemplo cuando voy a crear una tabla dinamica.

En ingles los comandos que uso son:
lo_excel.ActiveWorkbook.PivotCaches.Create(1,"cxp!R1C1:R"+ALLTRIM(STR(XSON))+"C27",1).CreatePivotTable("sheet1!R3C1","PivotTable1",1)

Lo cambio todo en español y no me funciona:
lo_excel.ActiveWorkbook.PivotCaches.Create(1,"cxp!F1C1:F148C27",1).CreatePivotTable.sheets(1).("Hoja1!F3C1","Tabla dinámica1",1)

Un amigo me dijo que tengo que utilizar el comando Sheet y entre parentesis el (1), ya lo hice pero no funciona o no se como hacer para que funciones. Alguien Pilas que me pueda ayudar

Saludos

Jorge L. Dunkelman 25 mayo, 2010 16:49  

No creo que haga falta agregar Sheets(1), pero me parece que tienes que dejar"sheets1!..." y no cambiarla a "Hoja1!..."
Sheets(1) se refiere a la primer hoja en la colección. Al mover las hojas en el cuaderno, el índice cambia. Por eso no puedes fiarte del número de índice de la hoja.

Yashvé ♥ 15 junio, 2011 21:52  

Recuerdo que en Excel 2003 si asignabas una macro a un botón de la barra de herramientas contenida en un fichero x, cuando clicabas en el abría el fichero u ejecutaba la macro.

He realizado los pasos que aquí comentas, pero solo ejecuta la macro si el libro esta abierto, hay alguna manera de que ejecute la macro sin tener que guardarla en el libro de macros personal?

Gracias

Jorge L. Dunkelman 16 junio, 2011 07:04  

El comportamiento es el mismo en Excel 2007: si asignamos una macro a un objeto (botón, forma, icono, etc), al activar el objeto Excel abre el cuaderno que contiene el código y corre la macro.
Debes tener algún otro problema.

Anónimo,  30 octubre, 2011 07:29  

Hola jorge al cambiar el icono por defaul, solo tenemos los que nos muestra por default o hay alguna forma de incluir los propios gracias

Jorge L. Dunkelman 30 octubre, 2011 14:48  

No, sólo se puede cambiar por los que aparecen en la lista.

Anónimo,  30 diciembre, 2011 03:19  

Hola Yashve,

Lo que sucede es que no estas guardando la macro en Plantillas de Excel Habilitadas para Macros, y es por eso que forzosamente tienes que abrir el archivo que contiene la macro.

Espero haya servido de algo.

Saludos!!!

Will

Anónimo,  27 abril, 2012 17:14  

mil gracias.

Como siempre son excelentes tus explicaciones.

Llevo mas de un mes consultando ingenieros de sistemas para que me dieramn esta solución y ninguno había podido darme esta solución tan sencilla.

Anónimo,  12 septiembre, 2013 17:12  

Te pasaste... llevaba meses buscando una solución a este problema y tu en unos pocos pasos lo lograste. Muchas gracias por tu dedicación y tu tiempo.

Jose Riu,  21 enero, 2014 19:08  

Hola Jorge. perdon por hacer una pregunta que no esta referida a este blog, pero no encontre otro que hiciera referencia a mi consulta.
Quisiera saber si es posible ejecutar una subrutina diferente en base al contenido de una variable que contenga el nombre de la misma; algo asi como "Call (nomsub)", donde la variable nomsub tuviera el nombre de la subrutina a ejecutar.
Desde ya te agradezco tu inapreciable y permanente aporte.
abrazo.

Jose Riu,  21 enero, 2014 19:11  

Hola de nuevo. tengo otra consulta por lo que vuelvo a aprovechar este mismo blog.
Existe alguna funcion o procedimiento que permita conocer el nombre del rango de celdas a al que pertence una celda? de entrada pense que podia existir, pero luego, al darme cuenta que una celda puede pertenecer a mas de un nombre de rango de celdas me parece que no hay forma.
Gracias de nuevo.
slds.

Jorge Dunkelman 22 enero, 2014 07:55  

José, efectivamente, la consulta no está relacionada con el tema de la nota. Te sugiero que busques en foros de Vba donde recibirás mucha ayuda. En situacione similares a la que describes suelo usar Select Case, pero no es exactamente lo que estás buscando.

Jorge Dunkelman 22 enero, 2014 07:59  

EN cuanto a los nobres, una forma de visualizarlos es reducir el nivel del zoom en la hoja al 35%. Al hacerlo los nombres aparecen enmarcados en los rangos.

Anónimo,  09 abril, 2014 11:18  

Tengo varias macros en un libro pero cuando intento asociarlas a un icono (en la barra de acceso rapido) para que solo aparezca en este libro, desaparecen algunas. Si pongo en el desplegable que es para todos los documentos si me deja. Sabes porque ocurre esto?

Jorge Dunkelman 11 abril, 2014 18:26  

No, tendría que ver el archivo (fijate en el enlace Ayuda, en la parte superior del blog). De todas maneras, a un icono sólo puedes asociar una macro. ¿A qué desplegabkle te refieres?

jpascuet 23 junio, 2017 22:40  

Hola, como hago para ponerle un icono creado por mi a la macro? en el office 2003 podía facilmente

Jorge Dunkelman 25 junio, 2017 05:44  

La funcionalidad de las barras personalizadas ya no existe a partir de la version 2007. Además de la técnica que muestro en esta nota podés usar esta otra tecnica.

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP