Hoja Extendida

18/06/2005 - 21:59 por manuel | Informe spam
Saludos al grupo.
Mirad, tengo una hoja "ASUNTOS" a modo de tabla, donde cada fila constituye
un registro que guarda una serie grande de datos iniciales referentes a cada
asunto.
La primera columna de cada fila guarda un número entero correlativo,
identificador de cada ASUNTO.
Ahora debo ampliar el número de datos a guardar en cada registro, aunque su
género es distinto a los iniciales, por lo que me resulta más cómodo crear
una segunda hoja, REPORTES, donde cada fila guarda una serie de datos
propios de cada asunto también. La primera columna de cada fila guarda el
número de asunto, como en la hoja ASUNTOS. Su contenido es, por ej. para la
A7:
=si(ASUNTOS!A7<>"";ASUNTOS!A7;"") ...y así para muchas filas más.
De esta manera cuando doy de alta un nuevo asunto en ASUNTOS,
automáticamente se da de alta el mismo asunto en REPORTES.

Después hay dos o tres columnas de REPORTES donde sus contenidos dependen de
sus respectivos en la tabla ASUNTOS. Por ejemplo la B7 de REPORTES depende
de la D7 y la H7 de ASUNTOS.

Ahora resulta que como el número de datos es grande, cada vez que añado algo
se pone a calcular y se eterniza la entrada de datos.
Antes, cuando todo estaba en una única hoja, era mucho más rápido.

A mi entender, Excell no debería iniciar un proceso de recálculo, buscando
referencias, recalculando y actualizando. Si no que correspondería un
proceso de actualización (machaque) de datos. Creo que lo que necesito es
una macro que cuando meta un valor de asunto nuevo en ASUNTOS, salte y ponga
ese valor en la celda correspondiente de REPORTES. Igualmente si se
actualiza un dato en ASUNTOS!D7 ó ASUNTOS!H7, machaque con el nuevo valor
derivado sobre la celda REPORTES!B7. Pero si no se varían los valores de
ASUNTOS, la macro no tiene por qué trabajar. Creo que así ahorraría memoria
y ganaría rapidez.
¿Me podeis ayudar?
Cómo sería la macro para que si en ASUNTOS!Ann meto un número (p.e. el 32),
en REPORTES!Amm se meta ese número (p.e. el 32)

Sé que lo mejor sería utilizar ACCESS, pero de momento tiene que ser así.

Un Cordial Saludo.

Preguntas similare

Leer las respuestas

#1 KL
19/06/2005 - 00:13 | Informe spam
Hola Manuel,

Como punto de partida, prueba poner el siguiente codigo en el modulo VBA de
la hoja ASUNTOS. Cambia (extiende) el rango "A:A" si es necesario. Ojo - por
el hecho de usar un macro para dar de alta los asuntos, las formulas no
dejaran de recalcularse cada vez que introduzcas cambios. Lo que si puedes
conseguir mediante el macro es reducir el numero de formulas en la hoja.
Para copiar el codigo en el modulo de la hoja ASUNTOS:

1) Haz clic-derecho sobre el nombre de la hoja, en una de las pestanas de la
parte de abajo de la ventana de Excel.
2) Elige la opcion 'Ver Codigo' para abrir el Editor VBA
3) En la ventana mas grande a mano derecha pega el codigo que te pongo mas
abajo.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ManejoErrores
Set rng = Intersect(Target, Me.Range("A:A"))
Application.ScreenUpdating=False
Worksheets("REPORTES").Range(rng.Address).Value = rng.Value
Application.ScreenUpdating=True
ManejoErrores:
Exit Sub
End Sub

4) Pulsa Alt+F11 para volver a la hoja
5) Prueba introducir nuevos datos en la hoja ASUNTOS y comprueba que se han
copiado a las respectivas celdas de la hoja REPORTES

Saludos,
KL


"manuel" wrote in message
news:
Saludos al grupo.
Mirad, tengo una hoja "ASUNTOS" a modo de tabla, donde cada fila
constituye
un registro que guarda una serie grande de datos iniciales referentes a
cada
asunto.
La primera columna de cada fila guarda un número entero correlativo,
identificador de cada ASUNTO.
Ahora debo ampliar el número de datos a guardar en cada registro, aunque
su
género es distinto a los iniciales, por lo que me resulta más cómodo crear
una segunda hoja, REPORTES, donde cada fila guarda una serie de datos
propios de cada asunto también. La primera columna de cada fila guarda el
número de asunto, como en la hoja ASUNTOS. Su contenido es, por ej. para
la
A7:
=si(ASUNTOS!A7<>"";ASUNTOS!A7;"") ...y así para muchas filas más.
De esta manera cuando doy de alta un nuevo asunto en ASUNTOS,
automáticamente se da de alta el mismo asunto en REPORTES.

Después hay dos o tres columnas de REPORTES donde sus contenidos dependen
de
sus respectivos en la tabla ASUNTOS. Por ejemplo la B7 de REPORTES depende
de la D7 y la H7 de ASUNTOS.

Ahora resulta que como el número de datos es grande, cada vez que añado
algo
se pone a calcular y se eterniza la entrada de datos.
Antes, cuando todo estaba en una única hoja, era mucho más rápido.

A mi entender, Excell no debería iniciar un proceso de recálculo, buscando
referencias, recalculando y actualizando. Si no que correspondería un
proceso de actualización (machaque) de datos. Creo que lo que necesito es
una macro que cuando meta un valor de asunto nuevo en ASUNTOS, salte y
ponga
ese valor en la celda correspondiente de REPORTES. Igualmente si se
actualiza un dato en ASUNTOS!D7 ó ASUNTOS!H7, machaque con el nuevo valor
derivado sobre la celda REPORTES!B7. Pero si no se varían los valores de
ASUNTOS, la macro no tiene por qué trabajar. Creo que así ahorraría
memoria
y ganaría rapidez.
¿Me podeis ayudar?
Cómo sería la macro para que si en ASUNTOS!Ann meto un número (p.e. el
32),
en REPORTES!Amm se meta ese número (p.e. el 32)

Sé que lo mejor sería utilizar ACCESS, pero de momento tiene que ser así.

Un Cordial Saludo.


Respuesta Responder a este mensaje
#2 manuel
19/06/2005 - 21:39 | Informe spam
Un HACHA, SÍ SEÑOR.
Gracias, KL
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida