En este artículo veremos cómo podemos sumar o restar una cantidad determinada a un rango de celdas seleccionadas de forma rápida y automática utilizando una macro. Para ello debemos de seguir los pasos indicados para ejecutar una macro en Excel.
Esta macro es muy útil cuando deseamos añadir o restar determinados importes a un rango de celdas que seleccionamos.
Nuestro objetivo sería seleccionar las celdas a las que queremos sumar o restar algo y ejecutar la macro. Esta macro abrirá un cuadro (Inputbox) que nos pedirá el número que queremos sumar o restar. Al incluir el número positivo (para sumar) o negativo (para restar) cambia todas las celdas seleccionadas por el resultado de la operación.
Macro para sumar o restar importes a un rango de celdas
Veámoslo con un ejemplo simple en el que hay una lista de personas y puntuaciones de las mismas.
Crear la macro
Primero debemos de abrir el editor de Visual Basic (VBE) utilizando la combinación de teclas Alt + F11. Hacemos clic sobre el icono de nuestro fichero (ThisWorkbook) con el botón derecho (Insertar – Módulo) o en el Menú (Insertar – Módulo). Se nos abrirá en la parte derecha el editor VBA, en el cual debemos escribir o copiar el código de la macro.
El código de la macro es el siguiente:
Sub SumarImportes()
‘Macro para sumar o restar importes
Dim rng As Range
Dim i As Integer
i = InputBox(«Introduce número para sumar (positivo) o restar (negativo)», «Valor a sumar o restar»)
For Each rng In Selection
If WorksheetFunction.IsNumber(rng) Then
rng.Value = rng + i
Else
End If
Next rngEnd Sub
Ahora debemos de guardar esa macro. Deberemos guardar el fichero como Libro de Excel habilitado para macros (*.xlsm)
Ejecutar la macro
Lo primero que debemos de hacer es seleccionar el rango de celdas a las que queremos sumar o restar un importe dado. Para nuestro ejemplo he seleccionado los cinco primeros valores.
Después deberemos abrir el cuadro de diálogo de Macros. Bien haciendo clic sobre el icono de “ver macros” de la ficha Desarrollador o bien utilizando la combinación de teclas Alt + F8. Del cuadro de diálogo de la macros deberemos de seleccionar la que acabamos de crear y pulsar sobre el botón Ejecutar.
Cuando ejecutamos esa macro aparecerá el cuadro (Inputbox) que nos solicita que le indiquemos el número que queremos sumar a los valores seleccionados en el rango inicial. Para nuestra prueba incluiré 200.
Introduzco el número (200) y le doy a Aceptar.
Podemos observar que funciona perfectamente. Ha sumar 200 a las celdas seleccionadas en un principio. Incluso se pueden seleccionar celdas salteadas mediante la tecla Ctrol. Si lo que deseamos es restar un valor deberemos de incluir un número negativo.
Codigo Para hacer UNa lista desplegable VBA, jalando desde una hoja con celda y columnas
Hola! Tu ejemplo me.sirvió muchísimo… Pero sería posible que sea sensible y en Lugar de pedir el numero lo compare con otro y lo detecte solito?
Hola estoy haciendo un inventario pero cuando sino entrada y salida me da el producto existente cuando pongo un valor de salida no me resta la existencia. Me puede ayudar
Si no he ententido mal tu pregunta lo mejor es hacerlo con una fórmula condicional. En esta indicas que si corresponde a una entrada sume el valor. En cambio si se indica que es una salida debe de restar. Utiliza la función SI para ello. Un saludo
yo sólo quiero sumarle 1 a una celda. me puedes ayudar?
y puedes hacer una macro que realiza una suma o resta dependiendo de un codigo, por ejemplo todos los numeros con codigo 51 se suman y todos los numeros con codigo 72 se restan. y el resultado dejarlo en cuadro.
ojo. no busco que me sume encima de los valores es aparte el resultado, tampoco busco que exporte un archivo.