Visual Basic para Aplicaciones - Cálculos inmediatos en hojas de cálculo

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Cálculos inmediatos en hojas de cálculo

Publicado por Daniel (8 intervenciones) el 06/01/2017 17:40:54
Buenas,

Tengo una duda
Tengo 3 celdas con valores, por ejemplo
A1=5
A2=10
A3=25

La suma de estos valores me daría 50. La cosa es que si hago un cambio en alguno de estos valores otra de las celdas se me debe modificar, manteniendo el total estable.
Es decir, si hago A1=15, entonces esas 10 unidades que sume se las debo restar a A3, y de manera similar se hace para los otros siguiendo una serie de reglas.

La duda es sobre como conozco los valores iniciales que tienen las celdas, previo al cambio que se hizo. Me explico, si pongo un evento Worksheet_Change este solamente me detectara el último valor que tuvo la celda, en este caso A1=15 y no el primero,, por lo que no podré saber cual fue la diferencia en los valores de las celdas y que debo restar a la otra celda.

Espero haberme hecho entender.
Les agradezco su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cálculos inmediatos en hojas de cálculo

Publicado por JuanC (565 intervenciones) el 06/01/2017 17:58:34
podrías agregar comentarios a cada celda y dentro del mismo guardar la info necesario,
no es simple, pero es muy efectivo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cálculos inmediatos en hojas de cálculo

Publicado por Oscar Rubió (19 intervenciones) el 10/01/2017 17:35:57
1.- La suma de los valores iniciales asciende a 40, no a 50

2.- Si sabes cuál ha de ser la suma total, sólo deberás restar esa cantidad a la suma actual y ponerla en otra celda, es decir y por ejemplo, en el evento Change de la celda A1 simplemente deberías añadir un código parecido a este para que te pusiera la diferencia en la celda B1:

1
2
3
4
5
miSuma=Application.Worksheetfunction.Sum(Range("a1"),Range("a2"),Range("a3"))
 
miDiferencia=40 - miSuma
 
Range("B1")=miDiferencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Cálculos inmediatos en hojas de cálculo

Publicado por Daniel (8 intervenciones) el 10/01/2017 18:31:45
Gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar