Navegar por una hoja de Calculo

02/08/2006 - 17:25 por César G. | Informe spam
Hola a todo el mundo !

Agradeciendo de antemano el apoyo a este mensaje.

Resulta que tengo una hoja de calculo con alrededor de 130 gráficos, pero
ahora me piden que coloqué un menú al inicio para poder desplazarse al
gráfico seleccionado.

Pensé entonces en colocar un combo por cada grupo de graficos y dentro de
ellos el conjunto que lo componen, pero ahora estoy en el tema de mover el
cursor a cada hoja, no estoy muy seguro de si tengo que vincular cada item
del combo con el número de la fila donde se encuentre el gráfico o bien, si
existe alguna otra alternativa más eféctiva .

Ojalá puedan auxiliarme y/o aconsejarme al respecto.

Gracias

César G.

César Galicia
Soporte Técnico
TNS-Gallup

Preguntas similare

Leer las respuestas

#6 Conchavandito
03/08/2006 - 22:36 | Informe spam
Hola César, he realizado el sgte código espero que te ayude:
Voy asumir lo siguiente:

i) Cada gráfico debe estar relacionado con una celda (de
preferible que estas celdas corresponda la esquina superior izquierda
de cada gráfico) a estas celdas deberás asignarle un nombre
determinado.

ii) Tu "celda_combo" tiene como validación la lista de
nombres de las celdas que ubican a cada gráfico.(i)

...Agrega el siguiente código al envento SheetChange del objeto
ThisWorkbook, y no te olvides de asignar el valor correspondiente a
las variales:

idx_Celdacombo
rng_Celdacombo

'///////////////////////////////////////////////

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)

idx_Celdacombo = 1 'Número de hoja (Izq a Derecha) en donde se
encuentra tu celda combo
rng_Celdacombo = "B2" 'Rango en donde se encuentra tu celda combo

If Sh.Index = idx_Celdacombo Then
If Not Intersect(Target, Range(rng_Celdacombo)) Is Nothing Then
Application.ScreenUpdating = False
On Error Resume Next
HOJA = Mid(ThisWorkbook.Names(Target.Value).RefersToR1C1Local, 2,
InStr(1, ThisWorkbook.Names(Target.Value).RefersToR1C1Local, "!",
vbTextCompare) - 2)
HOJA = Replace(HOJA, "'", "")
With Sheets(HOJA)
.Activate
.Range(Target.Value).Select
With Application
.GoTo
reference:=.Range(Target.Value).Parent.Cells(.Range(Target.Value).Row,
.Range(Target.Value).Column), Scroll:=True
End With
.Range(Target.Value).Select
End With
If Err.Number <> 0 Then
MsgBox "No existe el gráfico indicado.", vbCritical, _
"Gráfico no encontrado"
End If
Application.ScreenUpdating = True
End If
End If
End Sub

'///////////////////////////////////////////////

César G. wrote:
Que tal Abraham ;

Pues en el tema de VBA según yo soy medio "ducho" (según yo) como decimos
por acá, ... je je, igual y estamos en el mismo país, pero ese es otro
asunto, te decia en el mensaje de la celda tipo lista, como puedo saber el
item que seleccionó ? digo, igual y es con la propiedad VALUE de la celda,
pero donde pondría el procedimiento? ... en todo caso necesito hacer una
"correspondencia" de item seleccionado vs la celda donde tenga que
dirigirse, algo asi como

if Cells(1,1).value ="Refrescos" then cells(1200,3).select

suponiendo que en la Celda C1200 esté el gráfico de los refrescos ...

con el combo mas o menos sería igual... digo algo así como un arreglo...

Dim Producto1(15,2) as string

luego Producto(1,1) = "Refresco"
Producto(1,2) = "C1200"

luego en según la propiedad listIndex del combo

Dir = combobox.listIndex(x)

Range(Producto(dir,2)).select

Aunque ahora que lo miro, quizás solo necesito una dimensión con el rango a
donde se tiene que Dirigir según el item seleccionado

Qué les parece ????

Hasta ahora creo que me falta saber con cuál de las 2 opciones me quedo y
saber donde podría colocar el codigo ??

Gracias como siempre..

César G.
















"Abraham" escribió en el mensaje
news:
> Estimado amigo, como andas con el VBA??? Basandome en tu interes por
> una lista desplegable en la celda en lugar de un combo, se me acaba de
> ocurrir que con una macro que relacione lo elegido, tu problema podria
> solucionarse.
>
> Abraham
>
Respuesta Responder a este mensaje
#7 Maestro
04/08/2006 - 04:10 | Informe spam
Hola Conchavandito

Gracias por tomarte la molestia de escribir el código.

Ahora que lo veo quiero entender que idx_Celdacombo es el index de una celda
cuya validacion es una lista desplegable. Esta celda es la B2 del la "hoja 1
" pero al elegir cualquier item no pasa nada

La lista de los productos la coloque en Z1:Z25

y los graficos estan en A65, A140, A210, etc...

Espero que puedas auxiliarme.

Gracias por tu apoyo.









"Conchavandito" escribió en el mensaje
news:
Hola César, he realizado el sgte código espero que te ayude:
Voy asumir lo siguiente:

i) Cada gráfico debe estar relacionado con una celda (de
preferible que estas celdas corresponda la esquina superior izquierda
de cada gráfico) a estas celdas deberás asignarle un nombre
determinado.

ii) Tu "celda_combo" tiene como validación la lista de
nombres de las celdas que ubican a cada gráfico.(i)

...Agrega el siguiente código al envento SheetChange del objeto
ThisWorkbook, y no te olvides de asignar el valor correspondiente a
las variales:

idx_Celdacombo
rng_Celdacombo

'///////////////////////////////////////////////

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)

idx_Celdacombo = 1 'Número de hoja (Izq a Derecha) en donde se
encuentra tu celda combo
rng_Celdacombo = "B2" 'Rango en donde se encuentra tu celda combo

If Sh.Index = idx_Celdacombo Then
If Not Intersect(Target, Range(rng_Celdacombo)) Is Nothing Then
Application.ScreenUpdating = False
On Error Resume Next
HOJA = Mid(ThisWorkbook.Names(Target.Value).RefersToR1C1Local, 2,
InStr(1, ThisWorkbook.Names(Target.Value).RefersToR1C1Local, "!",
vbTextCompare) - 2)
HOJA = Replace(HOJA, "'", "")
With Sheets(HOJA)
.Activate
.Range(Target.Value).Select
With Application
.GoTo
reference:=.Range(Target.Value).Parent.Cells(.Range(Target.Value).Row,
.Range(Target.Value).Column), Scroll:=True
End With
.Range(Target.Value).Select
End With
If Err.Number <> 0 Then
MsgBox "No existe el gráfico indicado.", vbCritical, _
"Gráfico no encontrado"
End If
Application.ScreenUpdating = True
End If
End If
End Sub

'///////////////////////////////////////////////

César G. wrote:
Que tal Abraham ;

Pues en el tema de VBA según yo soy medio "ducho" (según yo) como decimos
por acá, ... je je, igual y estamos en el mismo país, pero ese es otro
asunto, te decia en el mensaje de la celda tipo lista, como puedo saber el
item que seleccionó ? digo, igual y es con la propiedad VALUE de la celda,
pero donde pondría el procedimiento? ... en todo caso necesito hacer una
"correspondencia" de item seleccionado vs la celda donde tenga que
dirigirse, algo asi como

if Cells(1,1).value ="Refrescos" then cells(1200,3).select

suponiendo que en la Celda C1200 esté el gráfico de los refrescos ...

con el combo mas o menos sería igual... digo algo así como un arreglo...

Dim Producto1(15,2) as string

luego Producto(1,1) = "Refresco"
Producto(1,2) = "C1200"

luego en según la propiedad listIndex del combo

Dir = combobox.listIndex(x)

Range(Producto(dir,2)).select

Aunque ahora que lo miro, quizás solo necesito una dimensión con el rango
a
donde se tiene que Dirigir según el item seleccionado

Qué les parece ????

Hasta ahora creo que me falta saber con cuál de las 2 opciones me quedo y
saber donde podría colocar el codigo ??

Gracias como siempre..

César G.
















"Abraham" escribió en el mensaje
news:
> Estimado amigo, como andas con el VBA??? Basandome en tu interes por
> una lista desplegable en la celda en lugar de un combo, se me acaba de
> ocurrir que con una macro que relacione lo elegido, tu problema podria
> solucionarse.
>
> Abraham
>
Respuesta Responder a este mensaje
#8 Maestro
04/08/2006 - 04:18 | Informe spam
Hola Abraham..

Pues si, es solo 1 hoja y cada grafico fué insertado con una macro digamos
cada 60 filas aproximadamente, luego cambie su tamaño, el formato de las
celdas superiores y el rango de los datos a graficar.

Digamos que estoy metido en el tema de pegar los datos, sin embargo, como la
cantidad de graficos es mucha, alcanzan desde la celda A70 y
probablemente( no estoy seguro escribo desde mi hogar ahora), hasta la fila
A6500...

Es por ello que quisiera colocar en algun lugar de las celdas A1:A69 , 8
combo box o bien, una celda con lista desplegable que me lleve a cada fila
donde se encuentra el gráfico.

Digamos que, si tienes los graficos en las celdas A60, A120 y A180 y en la
lista tienes 3 productos
si eliges el primero de la lista entonces el cursor se va a la celda A60., y
sucesivamente con el segundo y con el tercero hasta alcanzar el último de
esa lista.

Espero haber sido más explicito en esta ocasión .-

Lamento responder hasta este momento pero debido a una tormenta el día de
ayer, estuvimos sin servicio electrico todo el día de hoy y no tuve acceso a
la red.

Gracias por todo, como siempre he recibido muchos consejos y ayuda en este
grupo de noticias.

César G.








"Abraham" escribió en el mensaje
news:
Estimado amigo, no termino de entender, es un libro con varias hojas
que tiene varios graficos, o es un libro con una hoja que tiene varios
graficos agrupados de algun modo?

Abraham

Respuesta Responder a este mensaje
#9 Conchavandito
04/08/2006 - 17:23 | Informe spam
Maestro:

Lo que te falta es asignarle un Nombre a cada celda que ubica a cada
gráfico

y los graficos estan en A65, A140, A210, etc...



Es decir a tu celda A65 debes asignarle un "Nombre" (menú
Insertar/Nombre/Define); y el "Nombre" que le asignes debe coincidir
con los valores que tienes en tu lista de productos ubicados en Z1:Z25

Saludos
JC

Maestro wrote:
Hola Conchavandito

Gracias por tomarte la molestia de escribir el código.

Ahora que lo veo quiero entender que idx_Celdacombo es el index de una celda
cuya validacion es una lista desplegable. Esta celda es la B2 del la "hoja 1
" pero al elegir cualquier item no pasa nada

La lista de los productos la coloque en Z1:Z25

y los graficos estan en A65, A140, A210, etc...

Espero que puedas auxiliarme.

Gracias por tu apoyo.
Respuesta Responder a este mensaje
#10 César G.
05/08/2006 - 01:21 | Informe spam
Mil Gracias Conchavandito / Abraham !!!

Funciona perfectamente, solo que cada vez que presiono la tecla "SUPR" en
cualquier celda de la columna "A" me aparece el mensaje de error "el gráfico
especificado no existe" o algo por el estilo. Imagino que esto se puede
corregir quitando la leyenda y dejando el ON ERROR RESUME NEXT

Ahora ya solo me resta "digerir" un poco más el codigo de la macro y
averiguar que hace cada paso

De nuevo gracias y espero que tengan un gran fin de semana todos .


César G.






"Conchavandito" escribió en el mensaje
news:
Maestro:

Lo que te falta es asignarle un Nombre a cada celda que ubica a cada
gráfico

y los graficos estan en A65, A140, A210, etc...



Es decir a tu celda A65 debes asignarle un "Nombre" (menú
Insertar/Nombre/Define); y el "Nombre" que le asignes debe coincidir
con los valores que tienes en tu lista de productos ubicados en Z1:Z25

Saludos
JC

Maestro wrote:
Hola Conchavandito

Gracias por tomarte la molestia de escribir el código.

Ahora que lo veo quiero entender que idx_Celdacombo es el index de una
celda
cuya validacion es una lista desplegable. Esta celda es la B2 del la "hoja
1
" pero al elegir cualquier item no pasa nada

La lista de los productos la coloque en Z1:Z25

y los graficos estan en A65, A140, A210, etc...

Espero que puedas auxiliarme.

Gracias por tu apoyo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida