(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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Bart
29/09/2006 - 14:45 | Informe spam
Hola, muy bien Miguel, pero no comprendo cómo después de la comparación el
valor que se introdujo en A1, se acumulará posteriormente en la celda
correspondiente al mes del día de hoy.

O sea lo que no comprendo como se realiza la asignación a la celda
ACUMULADORA del mes correspondiente, y si esta parte del programa debe estar
antes o después de la rutina de ACUMULACIÓN que expuse anteriormente según
las recomendaciones de uds.

GRACIAS...

"Héctor Miguel" wrote:

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.



Respuesta Responder a este mensaje
#3 Gabriel Raigosa
30/09/2006 - 18:16 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"Bart" escribió en el mensaje
news:
| 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.
|
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida