Cuadro combinado

19/12/2005 - 18:29 por luka79 | Informe spam
Hola a todos.
¿Se puede hacer que una opción de un cuadro combinado o de un cuadro de
lista abra una libro de excel o me lleve a una hoja de un libro abierto?
Yo actualmente lo hago con hipervínculos, pero quisiera cambiarlo.

Gracias anticipadas a todos
Javier.B.A

Preguntas similare

Leer las respuestas

#6 luka79
21/12/2005 - 14:04 | Informe spam
Gracias Sergio.
El problema era debido, igual que con mi exposición anterior, a mi nulidad
con el VB, ya que habia puesto el codigo en la parte de otra hoja en vez de
la hoja 1
Ha funcionado todo perfectamente

Javier.B.A


":: Sergio A Campos H" escribió:

Javier.

'En el ThisWorboook incluí la macro:
'
Private Sub Workbook_Open()
For Each hojas In ThisWorkbook.Sheets
Hoja1.ComboBox1.AddItem hojas.Name
Next hojas
End Sub
'
'Y en el código de la Hoja1 incluí la siguiente macro:
'
Private Sub ComboBox1_Change()
hoja = ComboBox1.Value
Sheets(hoja).Select
End Sub
'
Me funciona perfectamente. Toma en cuenta que si eliges la primera opción,
se quedará en la misma hoja... debes de elegir las opciones siguientes para
que te mande a la hoja que selecciones.

<!-- Tec. Inf. Sergio A Campos H -->

¿¿ Deseas colaborar en mi sitio ??, entra y envíame tus sugerencias de
contenido, ! se acepta de todo tipo !
http://mx.geocities.com/sergioacamposh
http://sergioacamposh.mundopc.net


"luka79" escribió en el mensaje
news:
> Hola Sergio, otra vez yo.
>
> El problema que te expuse antes es porque no había puesto el combobox en
> la
> hoja correcta. Ya lo he corregido y no me da ese problema, pero cuando
> selecciono en el combo la hoja 2 o la hoja 3, no pasa nada, o al menos no
> pasa nada que yo (que soy bastante miope) pueda ver
>
> Gracias nuevamente
> Javier.B.A
>
>
> ":: Sergio A Campos H" escribió:
>
>> Javier.
>>
>> 'Primeramente dentro del evento _open del Workbook, añadimos los items
>> que
>> necesites:
>> '
>> Private Sub Workbook_Open()
>> Hoja1.ComboBox1.AddItem "Hoja2"
>> Hoja1.ComboBox1.AddItem "Hoja3"
>> End Sub
>> '
>> 'Después asignamos una macro donde reconozca el item seleccionado:
>> '
>> Private Sub CommandButton1_Click()
>> Select Case ComboBox1
>> Case "Hoja2"
>> Sheets("hoja2").Activate
>> Case "Hoja3"
>> Sheets("hoja3").Activate
>> End Select
>> End Sub
>> '
>> 'También puedes asignarle la misma acción al evento _change del Combo:
>> '
>> Private Sub ComboBox1_Change()
>> Select Case ComboBox1
>> Case "Hoja2"
>> Sheets("hoja2").Activate
>> Case "Hoja3"
>> Sheets("hoja3").Activate
>> End Select
>> End Sub
>> '
>> 'En el caso de que el número de hojas cambien regularmente, las
>> siguientes
>> macros crean una lista de todos los nombres de hojas actuales:
>> '
>> Private Sub Workbook_Open()
>> For Each hojas In ThisWorkbook.Sheets
>> Hoja1.ComboBox1.AddItem hojas.Name
>> Next hojas
>> End Sub
>> '
>> Private Sub ComboBox1_Change()
>> hoja = ComboBox1.Value
>> Sheets(hoja).Select
>> End Sub
>>
>> <!-- Tec. Inf. Sergio A Campos H -->
>>
>> ¿¿ Deseas colaborar en mi sitio ??, entra y envíame tus sugerencias de
>> contenido, ! se acepta de todo tipo !
>> http://mx.geocities.com/sergioacamposh
>> http://sergioacamposh.mundopc.net
>>
>>
>> "luka79" escribió en el mensaje
>> news:
>> > Hola a todos.
>> > ¿Se puede hacer que una opción de un cuadro combinado o de un cuadro de
>> > lista abra una libro de excel o me lleve a una hoja de un libro
>> > abierto?
>> > Yo actualmente lo hago con hipervínculos, pero quisiera cambiarlo.
>> >
>> > Gracias anticipadas a todos
>> > Javier.B.A
>>
>>
>>



Respuesta Responder a este mensaje
#7 luka79
21/12/2005 - 14:20 | Informe spam
Hola Hector.
Antes que nada agradecerte este comentario y todos los demás que realizas a
la lista. A mi personalmente me abren muchas posibilidades.
En relación ya con el caso concreto, la pregunta estaba planteada no porque
yo quiera moverme por las hojas de un libro, ( a mi personalmente me gusta
mucho mas el teclado que el ratón, por ejemplo) sino porque yo tengo varios
libros con un número de hojas grande cada uno y son accesibles a todo mi
grupo de trabajo, y alguno de sus integrantes no tiene grandes (alguno ni
pequeños) conocimientos de informática, por lo que cuanto mas fácil se lo
ponga, mejor.

En relación con la segunda parte que dices, cuando pones "codigo normal" ¿a
que te refieres?

Y por último una tercera cosa, relacionado tangencialmente con esto. A
veces, tu o alguno de los expertos que escriben comentais que tal o cual
formula o tal o cual código es mas lento o hace que se ralenticen los
cálculos o como en este caso, se "llenen de código". ¿Como se puede saber
eso? ¿Es la experiencia o está relacionado con algo en concreto?

Un saludo

Javier.B.A


"Héctor Miguel" escribió:

hola, Javier !

> Se puede hacer que una opcion de un cuadro combinado o... de lista abra una libro de excel o me lleve a una hoja de un libro abierto?
> Yo actualmente lo hago con hipervinculos, pero quisiera cambiarlo.

-> para el caso de 'cambiar' de hoja/s dentro de un libro...
op1: podrias evitar el uso de codigo si pulsas con el boto derecho del puntero
-> sobre las 'flechas' en la parte inferior izquierda de las barras de desplazamiento ;)
op2: podrias 'minimizar' el uso de codigo y aligerar la carga y 'llenado' de cuadros combinados/lista con algo +/- como:
en un modulo de codigo 'normal' ==> Sub CambiarHoja()
With Application.CommandBars("Workbook Tabs").Controls(16)
If Right(.Caption, 3) = "..." Then .Execute Else .Parent.ShowPopup
End With
End Sub

-> macro a la que podrias asignarle un 'atajo de teclado' ;)

saludos,
hector.



Respuesta Responder a este mensaje
#8 KL
21/12/2005 - 15:06 | Informe spam
Hola luka79,

Perdonad la intromision :-) En respuesta a tu ultima pregunta [y ya seguramente vendran los comentarios de HM], podrias echar un
vistazo a esta web que trata de la optimizacion de calculos en la hoja [asegurate de leer todos los vinculos que pone en la parte de
arriba de cada una de las paginas - el interfaz de usuario de esta web si que necesita optimizacion, digo yo]:
http://www.decisionmodels.com/calcsecrets.htm

Respecto a VBA hay muchas cosas que tener en cuenta dificilmente enumerables en un post, los mas obvios que se me ocurren son:
- una funcion de hoja de calculo es notablemente mas rapida que una funcion definida en VBA. No siempre es asi si hablamos de
formulas ya que a veces VBA puede tener caminos mas cortos para conseguir un objetivo que en la hoja a lo mejor requiere de una
formula matricial larga y peada ;-)
- un bucle (que evalua celda tras celda) es casi siempre mas lento que un comando nativo que hace lo mismo en un paso, p.ej. no es
lo mismo crear una lista de valores unicos mediante un bucle o mediante un rng.AdvancedFilter...
- la mayoria de las operaciones en VBA no precisan de seleccionar o activar los objetos involucrados. El seleccionar o activar
(.Select, .Activate) relentiza mucho cualquier codigo
- si un macro realiza multiples cambios en la hoja, es recomendable congelar la pantalla para evitar el tiempo adicional que se
gasta en refrescarla despues de cada cambio y para evitar el posible parpadeo. Lo mismo se refiere al modo automatico de recalculo y
los eventos - muchas veces es preferible inhabilitarlos mientras corre el codigo
- si se realizan muchas operaciones con rangos dentro del codigo es recomendable usar la notacion Range("A1") mas que la [A1] ya que
la segunda es una llamada por funcion y es mas lenta.
- si creas una funcion en VBA para usarla en la hoja y que se tiene que actualizar con frecuencia, antes de hacerla volatil mediante
Application.Volatile (lo cual hara que la funcion recalcule si recalcula cualquier formula en la hoja) es preferible asegurarse que
todos los elementos variables esten entre los parametros de la funcion. Asi solo se actualizara si cambia algun parametro en
concreto.
- etc. etc.

Despues de haber escrito esta parrafada me acorde de que mucho mejor que yo lo explica Chip Person:
http://www.cpearson.com/excel/optimize.htm

Saludos,
KL


"luka79" wrote in message news:
Hola Hector.
Antes que nada agradecerte este comentario y todos los demás que realizas a
la lista. A mi personalmente me abren muchas posibilidades.
En relación ya con el caso concreto, la pregunta estaba planteada no porque
yo quiera moverme por las hojas de un libro, ( a mi personalmente me gusta
mucho mas el teclado que el ratón, por ejemplo) sino porque yo tengo varios
libros con un número de hojas grande cada uno y son accesibles a todo mi
grupo de trabajo, y alguno de sus integrantes no tiene grandes (alguno ni
pequeños) conocimientos de informática, por lo que cuanto mas fácil se lo
ponga, mejor.

En relación con la segunda parte que dices, cuando pones "codigo normal" ¿a
que te refieres?

Y por último una tercera cosa, relacionado tangencialmente con esto. A
veces, tu o alguno de los expertos que escriben comentais que tal o cual
formula o tal o cual código es mas lento o hace que se ralenticen los
cálculos o como en este caso, se "llenen de código". ¿Como se puede saber
eso? ¿Es la experiencia o está relacionado con algo en concreto?

Un saludo

Javier.B.A


"Héctor Miguel" escribió:

hola, Javier !

> Se puede hacer que una opcion de un cuadro combinado o... de lista abra una libro de excel o me lleve a una hoja de un libro
> abierto?
> Yo actualmente lo hago con hipervinculos, pero quisiera cambiarlo.

-> para el caso de 'cambiar' de hoja/s dentro de un libro...
op1: podrias evitar el uso de codigo si pulsas con el boto derecho del puntero
-> sobre las 'flechas' en la parte inferior izquierda de las barras de desplazamiento ;)
op2: podrias 'minimizar' el uso de codigo y aligerar la carga y 'llenado' de cuadros combinados/lista con algo +/- como:
en un modulo de codigo 'normal' ==>> Sub CambiarHoja()
With Application.CommandBars("Workbook Tabs").Controls(16)
If Right(.Caption, 3) = "..." Then .Execute Else .Parent.ShowPopup
End With
End Sub

-> macro a la que podrias asignarle un 'atajo de teclado' ;)

saludos,
hector.



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