Con base en inquietud realizada por uno de nuestros integrantes de la Comunidad Triple EEE se ha creado este artículo en donde se explica a través de Macro en Excel cómo acumular el calculo de una suma en una misma celda cada que se ingrese un nuevo valor, es decir, que cuando se ingrese un nuevo dato o número sobre una celda, este se sume al valor que estaba anteriormente en la celda.
Para dar solución a este caso, se desarrolló Macro en Excel en donde se han programado dos eventos de la hoja de cálculo para conseguir el objetivo propuesto, los dos eventos son los siguientes:
SelectionChange: Evento que se activa a partir que se hace click sobre determinada celda de la hoja de Excel, a partir de aquí se captura el valor que se encuentra en la celda.
Change: Evento que se activa cuando se modifica el valor de la celda, a partir de este evento se adiciona el valor ingresado a el dato capturado en el evento SelectionChange.
Con el uso de los dos eventos anteriormente descritos se desarrolla solución donde se integran estas dos con aplicación de variables que permiente acumular el valor del calculo de la suma y controlar las veces que se debe sumar el nuevo valor ingresado.
A continuación el paso a paso de la macro en Excel desarrollada para dar solución al caso:
1) Comunidad Triple EEE, Únete >> https://goo.gl/FrswaC
2) Suscríbete a este curso gratuito para aumentar tu productividad en Excel un 80% y obtén 4 regalos adicionales al suscribirte a este curso: http://goo.gl/zNqh0o
Artículos anteriores:
- #ParticipaEEE: ¿Cuántos Jueves hay en un año, resolver con Excel?
- Día 40 – Consultar empleado en Excel mostrando sus datos y su Foto
- Día 39 – Simule resultados con los Escenarios de Excel
- Día 38 – Macro en Excel para Eliminar fila con doble Click
- Día 37 – Ejecutar Macro en Excel cuando cambie el valor de una Celda
Excelente ejercicio.
Gracias por compartirlos pues son de gran utilidad para el uso cotidiano.
Te deseo un feliz año nuevo lleno de salud y proyectos.
Danilo.
Hola Danilo, con gusto, esperamos que también tengas un muy feliz año 2016, síguenos en nuestras redes sociales y participa de todo el contenido que se viene para éste año. Un abrazo
Pingback: Función SIFECHA en Excel
Hola me gustaria aprender mas de excel, sobre todo hacer un formulario en excel que me muestre la venta de un producto asi como la gráfica de su compartamiento de venta.
Hola Óscar, estaremos estudiando tu propuesta para un futuro contenido, síguenos y espera mucho más contenido de utilidad, saludos. Gracias por comentar.
Hola muy buen vídeo me gustaría saber como hago para que se haga esto en varias celdas espero tu respuesta
Gracias
Hola Harold, lo que debes hacer es utilizar el código utilizado en la macro, simplemente cambiando la celda es decir, ya no F9 sino B11 o la que sea necesaria. Gracias por comentar, saludos
Esta parte me gustaría que la explicaras no la entendí, he tratado de hacerlo y nome funciona. Si pudieras compartir el código con varias celdas sería mucho mejor o realizar un vídeo para seguir los pasos.
Mil gracias
Hola Henry, vamos a tener en cuenta tu solicitud para un futuro contenido. Gracias por comentar
Pingback: 8 Trucos en Excel para comparar datos rápidamente
Estimado Alfonso.
Muchas gracias por el ejercicio, me gustaría saber si en este en este ejercicio se puede
usar números decimales, ya que solo me funciona con enteros, y si es el caso que debería hacer para que me funcione con decimales.
de ante mano mil gracias
saludos
Hola Ricardo, claro, sirve para cualquier número, debes revisar el formato de celda también, gracias por comentar
Cordial saludo
para sumar decimales en la declaración de variable valor cambiar la palabra long por double.
para retornar automáticamente a la celda F 9 en la declaración selectionchange adicione las siguientes lineas
If Target.Address = “$F$”10 Then
Sheets(“EEE”).Range(“F10”).Select
End If
Gracias al equipo de EEE por el excelente material que nos ofrecen
Hola Leo, dejaremos tu comentario para que la comunidad Triple EEE lo vea, opine, lo disfrute, gracias por participar, comentar y compartir. Saludos
Pingback: Función DIAS.LAB en Excel - Calcular Días laborables
Pingback: Función BDCONTAR en Excel
Pingback: Función ES.IMPAR en excel
Pingback: Macro para transferir datos de una hoja a otra – Caso de Noelia Parte 2 de 2 - Especialistas En Excel
Pingback: Sumar valores en Excel que se encuentren en un rango de fechas
Pingback: Función ESNOD en Excel
Hola que bien este video, pero me gustaría que me indicaras como hago para hacer sumas condicionales y ubicar el valor en una celda determinada. Esq ue tengo que sumar varios valores que se encuentran en una lista, cada uno de ellos con fechas distinta y un código de gasto también diferente, por lo tanto debere colocar la suma por fecha en cada código.
Gracias por compartir tus conocimientos, interesante tu video ; estoy trabajando en un proyecto y ese proceso es de gran utilidad para mi. lo aplique pero no me da, sale error. Me podrías ayudar que estoy haciendo mal:
Option Explicit
Dim valor As Long
Dim cantidadveces As Integer
———————————————————————————————————————
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = “$C$6” Then
cantidadveces = cantidadveces + 1
If cantidadveces > 1 Then
Exit Sub
End If
valor = valor + Sheets(PROMEDIOS).Range(“C6”).Value
Sheets(“PROMEDIOS”).Range(“C6”).Value = valor
End If
End Sub
—————————————————————————————————————————
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
valor = 0
cantidadveces = 0
If Target.Address = “$C$6” Then
valor = Sheets(“PROMEDIOS”).Range(“C6”).Value
End If
End Sub
Hola Jesús, cuando utilizas un lenguaje de programación debes tener cuidado con la escritura, pues un solo punto te puede generar un error. en la línea valor = valor + Sheets(PROMEDIOS).Range(“C6”).Value, PROMEDIOS debería estar entre comillas Sheets(“PROMEDIOS”).Range(“C6”).Value. Gracias por comentar, saludos
Amigo he hecho exactamente lo de tu vídeo y no me responde, cuando trato de ingresar un numero en la celda F9 me sombrea en vba el nombre de la hoja y me dice que la variable no se ha definido. Me podrías ayudar, trabajo en excel 2013
Hola Jesús, tienes que fijarte bien los parámetros que se trabajan en el video, una de las razones puede ser por el nombre que tengas en tu hoja. Gracias por comentar
Pingback: Macro en Excel para acumular suma en una misma celda
Tus videos son los mas claros, gracias por el empeño que le colocas para que sean muy claros, como para que acumule pero los datos digitados desde otra celda?
Hola Juan, esa es la razón de ser de nuestra comunidad. Gracias por comentar, saludos
Buenas Tardes estoy implementando tu macro pero necesito que se ejecute desde la fila a2 hasta a100 porque son muchos productos podrias ayudarme
Hola Lesly, debes modificar las celdas que se muestran en el video por las que necesitas. Gracias por comentar, saludos
Pingback: Macro en Excel para acumular suma en varias celdas
Buenas Tardes, muy expicativo el video. Tengo una consulta. Como tendria que hacer para que el contador se ponga en Cero nuevamente? Saludos desde Argentina.
Hola Gotchii, gracias por comentar, debes asignarle a una variable el valor de cero, cuando el proceso de suma termine vuelves a asignarle cero con esa variable o colocar un botón que le asigne cero a esa celda. Saludos
Hola..buen día..muy interesante este vídeo..pero quisiera saber como hago para que el valor de esa casilla se muestre en otra..es decir, tengo tres columnas..”CANTIDAD, ENTRADA, SALIDA” lo que quiero es..que en entrada se acumulen los valores..por ejemplo..llegaron 2 productos nuevos y si los agrego en entrada que se vean reflejados en cantidad + lo que ya tenía antes..lo mismo para hacer la resta cuando salgan..no se si me explico..de antemano muchas gracias..
Hola Andrés, vamos a evaluar tu solicitud para un futuro contenido. Saludos
Excelente trabajo, los felicito.
Hola Alanda, gracias por comentar, saludos
Hola, Gracias por su respuesta; intente nuevamente y conseguí que funcionara.
Ahora, son varias hojas con las que tengo que trabajar. Existe otra forma que no sea celda por celda????
Muchas gracias por su atención.
Hola Alanda, te recomendamos ver éste contenido, igual, vamos a evaluar tu solicitud para un futuro contenido. Saludos
Hola, me funciono perfecto el contenido del segmento ” Macro en Excel para acumular suma en varias celdas”.
Mil gracias por compartir su conocimiento!!!!!!!
Saludos.
Hola Alanda, gracias a ti por hacer parte de la comunidad Triple EEE, seguiremos trabajando para compartir contenido de utilidad. Saludos
buena noche.
Mediante el video para hacer la macro de suma acumulada hago todo el proceso que se me indica pero me aparece un error.
Option Explicit
Dim valor As Long
Dim cantidadVeces As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = “$F$9” Then
cantidadVeces = cantidadVeces + 1
If cantidadVeces > 1 Then
Exit Sub
End If
valor = valor + Sheets(“EEE”).ranger(“F9”).Value
Sheets(“EEE”).ranger(“F9”).Value = valor
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
valor = 0
cantidadVeces = 0
If Target.Address = “$F$9” Then
valor = Sheets(“EEE”).ranger(“F9”).Value
End If
End Sub
me podrias notificar en donde cometi el error. ya lo he intentado varias veces y me genera el mismo error
Hola Jonatan, lo mejor es que veas el vídeo detenidamente, recuerda que cualquier caracter adicional o faltante generará errores. Saludos
hola excelente . lo que no puedo hacer es colocar en cada casilla . al colocarla a otro se borra la primera.
Hola Alberto, gracias por comentar, como la variable “valor” se inicializa en cero, al ejecutar el código sin asignar otra variable a la celda adicional, se le asigna el cero a la primera celda. Esperamos que lo puedas resolver. Saludos
Estimado Alfonso.
Muy bueno el video, me ayudó en lo que necesitaba. Sin embargo, se me presentó un inconveniente, ya que yo necesito sumar números decimales, pero la fórmula me lo redondea a entero, es decir por ejemplo tengo un monto inicial de 20.00 y quiero sumarle 1.08, lo lógico sería que el resultado sea 21.58, pero el cuadro arroja 21.00 o 22.00.
Te agradecería muchisimo que me ayudes con ese inconveniente.
Gracias.
Hola Juan Carlos, recomendamos en Dim valor As Long cambiarlo a Dim valor As Double, ya que Long es un entero largo. Pruébalo, gracias por comentar, saludos
Pingback: Validar una celda para que sólo permita texto
Saludos,
Me podrían ayudar con un pequeño ejercicio por favor ?
Solo seria que la columna A:A se sumase con la B:B y arrojara el resultado en la celda C.
Pero quisiera hacerlo con Worksheet_Change(ByVal Target As Range).
Gracias por su ayuda…
Hola ANA,
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Or Target.Column = 2 Then
colA = Range(“A1:A10000”)
colB = Range(“B1:B10000”)
resultado = Application.WorksheetFunction.Sum(colA, colB, True)
Sheets(“Hoja1”).Range(“C1”).Value = resultado
End If
End Sub
Suponiendo que 10000 sea un rango suficientemente amplio, serviría un rango así… si lo que quieres es que se sume más de ese rango, utiliza el código del vídeo para encontrar la última fila. Saludos
Hola mi nombre es Julio y mi pregunta es como se puede hacer esto pero que el dato que se quiere sumar sea en otra celda.Por ejemplo: el dato acumulativo esta en (F9) y el dato que quiero que se sume a (F9) esta en la celda (H9).Un saludo y enhorabuena por el canal
Hola Julio, mira éste fragmento de código
Option Explicit
Dim valor As Double
Dim cantidadVeces As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = “$F$8” Then
cantidadVeces = cantidadVeces + 1
If Sheets(“EEE”).Range(“F9”).Value = -1 Then
Sheets(“EEE”).Range(“F9”).Value = 0
Exit Sub
End If
If cantidadVeces > 1 Then
Exit Sub
End If
valor = Sheets(“EEE”).Range(“F8”).Value + Sheets(“EEE”).Range(“F9”).Value
Sheets(“EEE”).Range(“F9”).Value = valor
End If
Si utilizas éste código, lo que hará es; sumar lo que coloques en la celda F8 y se sumará a lo que esté en la celda F9, así, F9 será la suma de todo lo que coloques en F8.
Esperamos haberte ayudado. Saludos
Hola y gracias por responder.
Funciona correctamente, lo que estoy intentando hacer es que en diferentes celdas realice diferentes operaciones, Ejmp.: Ahora es ,todo lo que pongo en (F8) se suma en (F9) y lo que estoy intentando hacer pero solo salen errores o simplemente no funciona es que lo que ponga en(F8) suma, lo que ponga en (F7)multiplica, lo que ponga en (F6) resta etc. y los resultados se van acumulando en (F9).
Hola Julio, con gusto, saludos