Referenciar una celda

08/09/2007 - 19:38 por Ramon | Informe spam
Hola
Casi no se nada de Excel y no se si lo que quiero se puede hacer, ya me
direis

Quiero que una celda adquiera el valor de la misma celda de la hoja anterior
y de la fila inferior, pero referenciarla de forma relativa, de forma que si
copio la hoja en otra nueva siga haciendo lo mismo, por ejemplo , la celda
C4 de la hoja actual adquiere el valor de la celda C5 de la hoja anterior
No se si me he explicado bien
Gracias
Ramon
 

Leer las respuestas

#1 Héctor Miguel
08/09/2007 - 23:52 | Informe spam
hola, Ramon !

Casi no se nada de Excel y no se si lo que quiero se puede hacer, ya me direis
Quiero que una celda adquiera el valor de la misma celda de la hoja anterior y de la fila inferior
pero referenciarla de forma relativa, de forma que si copio la hoja en otra nueva siga haciendo lo mismo
por ejemplo, la celda C4 de la hoja actual adquiere el valor de la celda C5 de la hoja anterior ...



puedes definir una funcion personalizada mediante vba en un modulo de codigo estandar/general/normal/... [p.e.]
a) inicia el editor de vba: atajo de teclado = {Alt}+{F11}
b) inserta un modulo: [menu] insertar / modulo
c) copia/pega las siguientes instrucciones en la ventana del modulo recien creado [Modulo1]

Function DeLaHojaAnterior()
Application.Volatile True
With Application.Caller
DeLaHojaAnterior = _
.Parent.Parent.Worksheets(.Parent.Index - 1) _
.Range(.Address).Offset(1)
End With
End Function

en la celda 'C4' de la hoja_X [NO en la primera del libro] usas la funcion como las *integradas* [p.e.] =DeLaHojaAnterior()
y te devolvera el contenido de la celda 'C5' de la hoja anterior [por indice en el libro] AUN si se encuentra *oculta*

notas: no tiene prevencion/correccion/... de -posibles- errores [p.e. si la usas en la primer hoja... no hay *hoja anterior*]
al usarla en celdas, el *Application.Caller* pasa a ser el objeto celda desde la que se llama a la funcion
el *.Parent* de una celda es un objeto hoja y [a su vez] el *.Parent* de un objeto hoja es un objeto libro
la funcion esta *preparada* para devolver exclusivamente la celda *siguiente* [hoja anterior] de la celda *llamadora*
y podrias agregar argumentos para la hoja anterior/siguiente/n_? y la referencia fila/columna +/- etc. etc. etc.
y... espero que no pienses *abusar* con el uso de funciones personalizadas de este tipo :))

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

Preguntas similares