función que no tome en cuenta filas o columnas ocultas

11/05/2005 - 17:50 por Charles | Informe spam
Hola, tengo una celda que debe tomar el valor inmediato a su izquierda, pero
que entre esos dos valores existen columnas ocultas que mes a mes voy
mostrando una más, por ejemplo en la celda C5 hay un dato y en la F5 hago
referencia a ese valor, pero al mes siguiente voy a tener un valor en la D5 y
quiero que la F5 que antes tomaba la C5 ahora tome la D5. Pensaba usar la
función desref pero necesito
algo más, para que la planilla no considere columnas ocultas y de esa manera
sería la celda que está inmediatamente a la izquierda.
espero que alguien me ayude
gracias desde ya.
 

Leer las respuestas

#1 Héctor Miguel
12/05/2005 - 07:17 | Informe spam
hola, Charles !

... una celda que debe tomar el valor inmediato a su izquierda, pero... existen columnas ocultas
... mes a mes voy mostrando una mas, por ejemplo en... C5 hay un dato y en... F5 hago referencia a ese valor
... al mes siguiente voy a tener un valor en... D5... que... F5... ahora tome... D5
... usar... desref pero necesito... que... no considere columnas ocultas [...]



[hasta donde se]...
1.- no existe un evento que 'detecte' modificaciones en alto/ancho de las celdas [filas/columnas] :-(
partiendo de lo anterior y [especialmente] para 'trabajar' con columnas ocultas/visibles...
2.- sera necesario algun apoyo con macros [con lo cual perderias algunos 'beneficios'] :-(
3.- [probablemente] se pudiera 'armar' una solucion 'menos complicada' si utilizas [p.e.]
la funcion coincidir() para 'atrapar' alguna 'columna/titulo' que se corresponda con el 'mes en curso'
[si comentas detalles mas 'especificos' acerca de otros factores que pudieran haberse quedado 'en el tintero']
4.- si de todas formas quieres trabajar funciones de hoja de calculo [con los menos codigos 'posibles']...
te paso un procedimiento al final

saludos,
hector.
=segun los datos de tu ejemplo y suponiendo que:
-> en 'F5' necesitas hacer referencia a la celda 'visible' mas cercana a su izquierda
[menos una columna = 'E5' en el caso de que no haya mas columnas ocultas 'intermedias']
-> y que la primer celda 'referenciable' es 'C5...
1.- usa la siguiente formula en 'F5': =desref(f5,,-1-(celda("ancho",e5)<1)-(celda("ancho",d5)<1))
=> toma nota que mi separador de argumentos es la coma ',' NO punto y coma ';' <= ;)
2.- copia las siguientes lineas => en el modulo de codigo de 'esa' hoja <Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
=> NO pierdes el 'deshacer-undo-ctrl+z'
=> SI pierdes el 'rehacer-redo-{F4} :(
=> SI pierdes la posibilidad de copiar/cortar -> pegar =>a menos que user [ctrl+]'arrastrar'<si necesitas 'conservar' los beneficios anteriores [EXCEPTO lo referente al {F4}]...
complementa el codigo en el modulo de la hoja a
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Application.CutCopyMode
Case xlCut, xlCopy
Do
DoEvents
Loop Until Application.CutCopyMode = False
End Select
Calculate
End Sub

Preguntas similares