Suma incremental

20/06/2004 - 12:15 por josearia | Informe spam
Hola amigos, tengo un prequeño problema, quiero sumar dos
celdas A1,B1 e incrementarselo al valor de C1.
El problema es que me da referencia circular, al aplicarle
la formula de suma a la celda C1.
Podeís ayudarme?.
Gracias

Josearia

Preguntas similare

Leer las respuestas

#1 fernando
20/06/2004 - 16:33 | Informe spam
Que yo sepa, sólo se puede hacer, mediante código.


"josearia" escribió en el mensaje
news:1ef1101c456af$8d6664e0$
Hola amigos, tengo un prequeño problema, quiero sumar dos
celdas A1,B1 e incrementarselo al valor de C1.
El problema es que me da referencia circular, al aplicarle
la formula de suma a la celda C1.
Podeís ayudarme?.
Gracias

Josearia
Respuesta Responder a este mensaje
#2 josearia
20/06/2004 - 17:00 | Informe spam
Gracias Fernando, pero podrías decirme como.?


Que yo sepa, sólo se puede hacer, mediante código.


"josearia" escribió


en el mensaje
news:1ef1101c456af$8d6664e0$
Hola amigos, tengo un prequeño problema, quiero sumar dos
celdas A1,B1 e incrementarselo al valor de C1.
El problema es que me da referencia circular, al aplicarle
la formula de suma a la celda C1.
Podeís ayudarme?.
Gracias

Josearia


.

Respuesta Responder a este mensaje
#3 fernando
20/06/2004 - 18:14 | Informe spam
Algo asi podría servir:

Sub Acumular()
ValorAntes = Range("C1").Value
ValorDespues = ValorAntes + Range("A1").Value + Range("B1").Value
Range("C1").Value = ValorDespues
End Sub




"josearia" escribió en el mensaje
news:1efc901c456d7$4a616230$
Gracias Fernando, pero podrías decirme como.?


Que yo sepa, sólo se puede hacer, mediante código.


"josearia" escribió


en el mensaje
news:1ef1101c456af$8d6664e0$
Hola amigos, tengo un prequeño problema, quiero sumar dos
celdas A1,B1 e incrementarselo al valor de C1.
El problema es que me da referencia circular, al aplicarle
la formula de suma a la celda C1.
Podeís ayudarme?.
Gracias

Josearia


.

Respuesta Responder a este mensaje
#4 Héctor Miguel
21/06/2004 - 06:58 | Informe spam
¿que tal, chicos?

josearia escribio en el mensaje
... prequeño problema ... sumar ... A1,B1 e incrementarselo al valor de C1.
... me da referencia circular, al aplicarle la formula de suma a la celda C1.

fernando escribio en el mensaje
Que yo sepa, sólo se puede hacer, mediante codigo.

josearia escribio en el mensaje
... pero podrías decirme como.?

fernando escribio en el mensaje
Algo asi podria servir:
Sub Acumular()
ValorAntes = Range("C1").Value
ValorDespues = ValorAntes + Range("A1").Value + Range("B1").Value
Range("C1").Value = ValorDespues
End Sub









para 'automatizar' la propuesta de fernando, podria aprovecharse el evento '_change' de la hoja
y 'aprovechando el viaje'... estoy usando la 'notacion abreviada' para referencia a objetos 'Range'
p.e. [c1] 'equivale' a: Range("c1") etc. etc. etc. :))
en el modulo de codigo de 'esa' hoja ==Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a1:b1]) Is Nothing Then Exit Sub
[c1] = [c1] + Target
End Sub
¨¨¨¨¨¨¨¨¨¨¨¨¨
=> si 'piensas' hacer 'esto mismo' con varias celdas [no 'solamente' con C1]... sera necesario...
- 'ampliar' el rango de comparaciones [en la instruccion 'Intersect'] y...
- 'detectar' la celda donde se 'depositara' el resultado [con su 'correspondiente' fila 'apropiada'] :))
=> una 'alternativa' para esta [precisa] situacion, seria crear una funcion 'personalizada' =>NO en 'vba'<= ???
sino utilizando el lenguaje de macros de nuestro 'viejo' amigo 'excel 4'... las 'macrosheets' [hojas de macros]
para aquellos que -aun- lo recuerdan, o quizas... ¿añoran? ['conserva' -algunas- 'cosillas' mas 'poderosas' que vba]

expongo un ejemplo al final.
saludos,
hector.
-
1.- 'click-derecho' en la pestaña de [alg]una hoja en el libro y selecciona -> 'insertar...'
2.- de la pestaña general [en el dialogo siguiente]... elegir...
o... 'macro de microsoft excel 4' [EN TU IDIOMA]
u... 'hoja internacional de macros' ['igual'... pero... 'diferente'... es decir... =>en ingles<=] :))
3.- [en la recien-creada hoja de macros] escribe las siguientes instrucciones para =>cada celda<=...
[A1] AcumulaCambios
[B1] =Argumento("Rango",8)
[B2] =Volatil(Falso)
[B3] =Volver(Llamador()+Suma(Rango))
escribelas 'tal-como-puse', si son 'reconocidas' por la aplicacion, seran 'convertidas' a mayusculas
[solo las instrucciones, que 'inician' con el signo '=' y exceptuando los argumentos 'definidos', p.e "Rango"]
3a- si tu idioma es ingles [o la hoja de macros 'fue' del tipo 'internacional']... las instrucciones en ingles...
[B1] =Argument("Rango",8)
[B2] =Volatile(False)
[B3] =Return(Caller()+Sum(Rango))
4.- selecciona [en la hoja de macros] la celda 'B1' y...
[menu] insertar / nombre / definir... [en este paso, 'tomara' el nombre que 'pusiste' en 'A1', o el que 'le digas']
[en la seccion 'macro] selecciona el 'tipo' de macro... =>funcion< [opcionalmente]... puedes 'decidir' en cual 'categoria' de funciones sera 'agregada' [por omision... def. por el usuario]
=>ACEPTAR<5.- 'regresa' a tu hoja, y en [alg]una celda [p.e. en 'C1'] 'llama' a la funcion =AcumulaCambios(A1:B1)
'repite' la llamada a la funcion en tantas celdas como sea necesario ;)

notas:
- la instruccion 'Volatil(Falso)' =>evita<= que la funcion se 'auto-actualice' en cada 're-calculo' del modelo
solo se 'actualiza' =>SI CAMBIAN<= [o se modifican] los valores del 'Rango' en el argumento de la funcion.
- por lo anterior... si el cambio 'deja' =>el mismo<= valor que 'antes'... NO se 'actualiza' [NO 'hubo cambios']
'a menos que'... 'el cambio' ocurra =>por codigo<= [no importa que 'quede el mismo'] ;)
Respuesta Responder a este mensaje
#5 josearia
21/06/2004 - 21:58 | Informe spam
Hola a Todos,
Fernando gracias por tu ayuda, pero voy a utilizarlo como
me ha escrito Hector.
Hector gracias, tal como lo has puesto me funciona
fenomenal, el problema me viene a continuacion, (yo en
codigo estoy bastante pez), como hago para que el codigo
que has escrito:

en el modulo de codigo de 'esa' hoja ==Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a1:b1]) Is Nothing Then Exit Sub
[c1] = [c1] + Target
End Sub
ššššššššššššš

lo pueda aplicar a lo siguiente:

Tengo cuatro columnas,

A1 B1 D1 E1
A2 B2 D2 E2
A3 B3 D3 E3
A4 B4 D4 E4

las cuales funcionan asi, se introducen datos en,

A1 B1
A2 B2
A3 B3
A4 B4

que incrementan el valor de,

D1 E1
D2 E2
D3 E3
D4 E4

respectivamente, celda a celda, puede hacerse tal como lo
has hecho para una?

Un saludo.

josearia
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida