¿Te gustaría crear un botón flotante en Excel?

Foto cortesía de: jimbl

Cuando trabajas sobre una hoja con varios cientos o miles de registros, se te presenta la molestia de no saber dónde colocar el botón que ejecute la macro que has desarrollado. ¿No es verdad?

Tarea un poco difícil, porque el usuario siempre se va a estar moviendo en todas direcciones, sobre todo hacia abajo, donde nuestro botón sale del campo visual. Sería Excelente poder crear un botón flotante para nuestra macro; pero ya sea porque quieres hacerlo diferente, o porque no quieres que el usuario cierre accidentalmente la ventanita con el botón, te voy a mostrar cómo hacerlo con una autoforma.

Botón Flotante en Excel

Primero vas a crear tu botón con una autoforma, a tu gusto. Esta es una de las ventajas de hacerlo así, porque puedes darle la forma y el color que quieras a tu botón. El mío me quedó así:

Boton Flotante

No olvides darle un nombre al botón. Yo le puse “btnEjecutar”

Boton Flotante

Ahora, vas a crear una macro dentro de la hoja en la que dibujaste el botón. Esto debido a que debemos controlar el evento Worksheet_SelectionChange que se dispara cada vez que el usuario cambia la selección.

Este sería el código a utilizar:

Botón Flotante

 

En este código, le estamos indicando a Excel que cada vez que nos movamos por la hoja, calcule la posición de la celda y se la asigne a la autoforma que tiene por nombre “btnEjecutar”.

  1.  Con el atributo .Left de nuestro botón, le estamos indicando que la distancia desde la izquierda de la pantalla, sea igual a la distancia que tiene la celda que está a la derecha de la celda activa.
  2. Con el atributo .Top de nuestro botón, estamos asignándole la misma distancia que tiene la celda activa desde la parte superior de la pantalla.
  3. El atributo .Height es simplemente para que siempre se adapte al alto de la celda activa. Puedes quitarle esta línea si tienes una planilla con muchas filas de diferente altura.

El botón flotante En acción

En esta imagen puedes ver a nuestro simpático botón moviéndose por toda la hoja cada vez que cambiamos la celda activa. No importa hacia dónde nos movamos, nos seguirá “como un perrito fiel”

Botón flotante en Excel

 

Consejos adicionales para que modifiques el código

Si no quieres que el botón flotante se mueva de columna, puedes eliminar la siguiente línea:

.Left = Cells(fila, columna + 1).Left

Por el contrario, si quisieras que tu botón no se mueva de fila, pero sí de columna, puedes eliminar la siguiente línea:

.Top = ActiveCell.Top

Si tu hoja tiene muchas filas con altura diferente entre si, puedes eliminar la siguiente línea:

.Height = ActiveCell.Height

El ejemplo terminado

Aquí te dejo el ejemplo terminado en un libro de Excel habilitado para macros. Solo haz clic en el botón y sigue las instrucciones. ¡Es Gratis!

No te olvides de permitir la ejecución de macros al abrirlo, para que funcione el código.

Eso es todo por hoy. Espero que le saques provecho a este ejemplo y lo apliques en tus proyectos.

¡Nos vemos!

Raymundo

13 thoughts on “¿Te gustaría crear un botón flotante en Excel?”

  1. Ufff, acabo de llegar aqui y me has salvado la vida, tenia un libro de excel con muchas hojas sobre cargadas de botones y esto es mi soliución, solo tengo un problema, es posible limitar el rango de actuacion del desplazamiento? Me interesa por ejemplo que solo se desplazara entre B12 Y B34, Saludoss y gracias

  2. Hola Raymundo, buenas tardes.

    Estoy leyendo este artículo, y quisiera saber si es posible que el botón se mantuviera en la parte superior de la pantalla mientras se hace scroll hacia abajo, no necesariamente cuando cambiamos de celda.

    Gracias!

  3. Excelente, me funciono logre cambiarle la forma e insetar otros botones…pero ahora quiero insertar un forma rectangular con fondo de color amarillo…intento enviarlo atras para que el texto de la celda resalte pero no lo hace como se haría en ese caso?

    1. Hola, Jrd. La autoforma siempre estará sobre la celda, por eso en el ejemplo yo la pongo a un lado, sobre celdas que no tienen nada que pueda ser estorbado. También podrías reducir la opacidad de la autoforma, de manera que puede “verse a través” de la autoforma.

      Saludos

  4. Hola Raymundo, espero estés bien. Agradezco me ayudes con este caso.
    Como hacer que el botón que contiene la macro este siempre al lado de una celda especifica, sin importar si agrego o elimino una fila por encima del botón.

  5. Me funciono perfecto solo que el botón comenzó a acortarse (se llamaba “validacion de datos” luego “validacion” luego “valid” y luego desapareció por completo de la hoja) y ya no lo encuentro!!
    Super agradecida si me puede ayudar!

  6. Raymundo hola, buenas tardes, como se podría hacer para que se mueva en una sola columna y que esté limitado entre dos filas, es decir q se mueva en la columna B, pero solo entre las filas 2 y 20?

  7. Orlando Malca Hernández

    Hola Raymundo, por favor me puedes ayudar, quiero ubicar el botón al lado izquierdo de la celda seleccionada.

Leave a Comment

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