Excel.Macros: Utilizando botones

Como que no solo de código vive el hombre, aprovecho esta serie de artículos para recordaros la existencia, en Excel, de botones. Si, tambien existen formularios, y muy pronto vamos a revisarlos, pero mientras tanto, un humilde boton nos puede hacer mucho bien…Disculpad el lenguaje, pero se ve que hoy me he levantado¿clasicon?.

Bueno, a lo nuestro, vamos a ver como podemos incorporar un botón a nuestra hoja de cálculo, y unirlo a una macro para darle un poco mas de dinamismo a nuestro trabajo.

Nuestro primer ejemplo, va a ser muy sencillo, tenemos una hoja con una tarifa de precios, y queremos poder incrementar o de crementar nuestros precios con solo pulsar un botón….

Primero nuestra hoja:

hoja de calculo con tarifa de precios

Por aquello de reservar energías para lo importante, se me ha ocurrido bajar una hoja desde internet; os dejo el enlace de la pagina por si quereis descargarla: http://www.bjc.es/lista-de-precios/ (no es publicidad; no tengo nada que ver con ellos, pero dejaron a mi alcance una hoja excel…)

Para organizar nuestro trabajo, le he asignado un nombre a nuestra columna de precio; lo hubiera podido hacer desde macro, pero como la intención es que si modifican la columna, el usuario modifique el nombre y todo siga funcionando, lo he hecho en la hoja; para ello, he hecho click en la celda C3, y a continuacion he pulsado Ctrl+Shift+Flecha abajo para seleccionar toda la columna de datos; luego me he posicionado en el cuadro de nombres , Excel. Cuadro de nombreshe escrito listaPrecios, pulso Intro y la columna de nombres pasa a llamarse listaPrecios

Se trata ahora de hacer una macro que nos pida cuanto queremos incrementar o decrementar nuestros precios. Para ello, podemos abrir nuestro editor de VBA y añadimos un módulo nuevo, o en thisworkbook y  escribimos :

Sub modificaPrecio()
    Dim variacion As Double

    variacion = InputBox("Indique variacion" & vbCrLf & " Ej: 1,10 +10%, 0,90 -10%")
    Application.ScreenUpdating = False
    Range("listaPrecios").Select
    For Each celda In Selection.Cells
        celda.Value = celda.Value * variacion
    Next
    Application.ScreenUpdating = True

End Sub

Como veis, no me he complicado la vida, defino una variable variacion como Double, presento un inputbox para que me indiquen el incremento o decremento, que para simplificar lo solicito ya como operador, a continuación, bloqueamos la actualización de pantalla para que la macro vaya un poco mas rápida, seleccionamos el rango definido por “listaPrecios” y vamos recorriendo todas las celdas, aplicando el factor a cada una de ellas, luego solo queda volver a activar la actualización de pantalla, y todo hecho.

 

Excel.Ficha programador.Boton insertar

Ahora ya podemos añadir el boton, para ello, en la ficha de programador pulsamos el botón Insertar  y

 

 

sobre el emergente, pulsamos botón,

Excel.boton

 

y solo queda irnos a la hoja, en donde queramos que aparezca el botón, y arrastrar el ratón para dibujarlo. Al finalizar nos aparecerá una nueva ventana emergente en donde nos solicitara asociarlo a una macro; seleccionamos la que acabamos de hacer, y resuelto.

Ah! en caso de que no se abriera la pantalla para indicar la macro, podéis hacer doble click en el botón, y automáticamente aparecerá el editor de VBA con el nombre de la rutina escrito, escribís dentro el nombre de vuestra macro, y apunto para probar

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.

Esta entrada fue publicada en Excel, Formacion y etiquetada , , , , . Guarda el enlace permanente.

Deja un comentario