(Continuación) Celda Acumular Valor

29/09/2006 - 05:22 por Bart | Informe spam
Hola de nuevo, A TODOS GRACIAS POR SU VALIOSA AYUDA, vean esta complicación:

Y entonces cómo sería, si deseo que el valor antes de ACUMULARSE en una
celda determinada, verifique primero en cual se debe acumular.

Es decir, introduzco un valor en la celda A1, y dependiendo de la fecha, se
deberá acumular en la celda de ACUMULACIÓN del mes correspondiente a la fecha
de hoy.

Ej.:
En A1 se introduce el valor.
B1 acumula los valores mientras que la fecha del día corresponden al mes de
ENERO.
B2 acumula los valores mientras que la fecha del día corresponden al mes de
FEBRERO.
B3 acumula los valores mientras que la fecha del día corresponden al mes de
MARZO.
etc...

Es decir, vean que en este caso no existe una única celda de ACUMULACIÓN,
sino que el valor se acumulará dependiendo de la fecha del día en la celda
correspondiente. PERO SIEMPRE la celda de entrada de data es A1.

Traté de hacerlo con auxilio de otras celdas, y comparación del mes actual
con el mes que se genera a partir de HOY(), de hecho logro asignar el valor
a una celda de transición con el valor recien introducido del mes
correspondiente, pero como esta asignación la realiza el programa y no
directamente el usuario, entonces la instrucción Change(ByVal Target As
Range) no trabaja y no se acumula el valor, debido a que no detecta el cambio
del valor introduciéndose por el teclado, ya que lo realiza automaticamente
el programa.

"David" wrote:


Hola, Bart.

Esto no lo puedes hacer desde la hoja, pues crearías una referencia
circular. Así que te recomiendo que ataques tu problema desde VBA, en el
evento Change de la hoja en la que necesitas acumular los valores.

Voy a suponer que el valor lo ingresas en A1, y que necesitas acumularlo en
B1. Con esta idea en mente, prueba con lo siguiente:

1. Haz clic en Herramientas - Macro - Editor de Visual Basic.

2. Haz clic en Ver - Explorador de proyectos.

3. Si fuera necesario, en el explorador de proyectos haz clic en los signos
de esquema (los signos más o menos a la izquierda de los objetos o carpetas),
hasta que localices la hoja en la cual necesitas implementar el cálculo.

4. Cuando localices la hoja, haces doble clic en ella.

5. Pegas el siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Range("B1").Value = Range("B1").Value + Range("A1").Value
End If
End Sub

6. Cierras el editor de Visual Basic, y prueba escribir varios valores en la
celda A1.

Comentas si encuentras problemas.

Saludos cordiales.



"Bart" escribió:

> Hola a todos,
>
> Cómo puedo hacer para que una celda tome el valor acumulado de ella misma
> MÁS el valor de otra celda, ejemplo:
>
> Inicialmente:
> A1= 100
> A2= 0
>
> Luego:
> A1= 10
> A2= 110
>
> En realidad lo que se quiere es que al introducir un valor en la celda A1,
> éste se acumule en otra celda con la sumatoria anterior.
>
> Agradezco su ayuda,
> B.S.
 

Leer las respuestas

#1 Héctor Miguel
29/09/2006 - 05:54 | Informe spam
hola, Bart !

... introduzco un valor en la celda A1, y dependiendo de la fecha
se debera acumular en la celda de ACUMULACION del mes correspondiente a la fecha de hoy. Ej.:
En A1 se introduce el valor.
B1 acumula los valores mientras que la fecha del dia corresponden al mes de ENERO.
B2 acumula los valores mientras que la fecha del dia corresponden al mes de FEBRERO.
B3 acumula los valores mientras que la fecha del dia corresponden al mes de MARZO.
etc...



prueba con las siguientes lineas -> en el modulo de codigo de 'esa' hoja...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Dim Fila As Byte
Fila = Month(Date) - 1
With Target.Offset(Fila, 1)
.Value = .Value + Target
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares