seleccionar nombre de cuadro combinado en BVA

23/06/2006 - 15:45 por isaac | Informe spam
Estimados Amigos tengo tres cuadros combinados en Hoja1!
en una macro que grabe y no funciona, quedo como sigue:

ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "Hoja2!$A$2:$A$5"
.LinkedCell = "$G$7"
.DropDownLines = 8
.Display3DShading = False
End With
ActiveSheet.Shapes("Drop Down 2").Select
With Selection
.ListFillRange = "Hoja2!$f$2:$f$6"
.LinkedCell = "$f$19"
.DropDownLines = 8
.Display3DShading = False
End With
ActiveSheet.Shapes("Drop Down 3").Select
With Selection
.ListFillRange = "Hoja2!$g$2:$g$6"
.LinkedCell = "$f$21"
.DropDownLines = 8
.Display3DShading = False
End With
End Sub

lo que quiero es que la setencia seleccione el nombre de los cuadros
combinados para que se les asigne nuevos valores de .LisFillRange y tambien
de .LinkedCell es decir dependiendo del valor de .LinkedCell del cuadro
combinado uno (es uno por que fue el primero que cree) ya sea 1 2 3 me
ejecute una macro (arriba) que me ajuste los cuadros combinados c2 y 3 con
nuevos valores, pero parece ser que no me funciona. Saludos Isaac

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
23/06/2006 - 22:52 | Informe spam
hola, isaac !

... tengo tres cuadros combinados en Hoja1! en una macro que grabe y no funciona, quedo como sigue:
... quiero... que se les asigne nuevos valores de .LisFillRange y tambien de .LinkedCell
... es decir dependiendo del valor de .LinkedCell del cuadro combinado uno (es uno por que fue el primero que cree) ya sea 1 2 3 ..
... ejecute una macro... que me ajuste los cuadros combinados c2 y 3 con nuevos valores, pero parece ser que no me funciona...



1) haria falta que comentes [+/- exactamente] cuales serian los 'nuevos' valores de los c2 y 3... 'en funcion' de tu comentario de...
-> '... dependiendo del valor de .LinkedCell del cuadro combinado uno... ajuste los cuadros combinados c2 y 3 ...' ????

2) [en via de mientras]... puedes 'aligerar' el codigo que estas usando con algo +/- como lo siguiente...
en un modulo de codigo 'normal' ==Sub Asignar_valores_a_combos()
Dim Sig As Byte, Rangos, Celdas
Rangos = Array("a2:a5", "f2:f6", "g2:g6")
Celdas = Array("g7", "f19", "f21")
With Worksheets("hoja1")
For Sig = 1 To 3
With .Shapes("drop down " & Sig).ControlFormat
.ListFillRange = "=hoja2!" & Rangos(Sig - 1)
.LinkedCell = Celdas(Sig - 1)
End With
Next
End With
End Sub

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

__ el codigo expuesto __
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "Hoja2!$A$2:$A$5"
.LinkedCell = "$G$7"
.DropDownLines = 8
.Display3DShading = False
End With
ActiveSheet.Shapes("Drop Down 2").Select
With Selection
.ListFillRange = "Hoja2!$f$2:$f$6"
.LinkedCell = "$f$19"
.DropDownLines = 8
.Display3DShading = False
End With
ActiveSheet.Shapes("Drop Down 3").Select
With Selection
.ListFillRange = "Hoja2!$g$2:$g$6"
.LinkedCell = "$f$21"
.DropDownLines = 8
.Display3DShading = False
End With
End Sub
Respuesta Responder a este mensaje
#2 isaac
24/06/2006 - 03:50 | Informe spam
Gracias Hector,

Me funciono de maravilla el aligerar el codigo, y funciono muy bien.

En si lo que queria era que si el usuario en pantalla tenia 4 cuadros
combinados (COMBOS), y que si en el combo1 hace referencia a un bloque que
tiene una lista de datos por ejemplo de marcas de carros, es decir ford,
chevrolet, nissan, etc. al seleccionar ford, el combo2 y combo3
automaticamente los rangos para estos se modificaran de tal manera que solo
dieran datos de la ford, y a su vez si es chevrolet el seleccionado el el
combo1, en el dos y tres se ajusten los rangos para dar listas que ya tengo
hechas referentes a chevrolet, y asi sucesivamente, y el codigo lo disparo
con una macro que me dice que si ford=1 -vincular con la celda- (ubicación
en la lista, chevrolet=2, etc) ejecute la macro que me asigne los rangos
para la celda con valor 1, que dispare otra si la celda cambia a 2
(chevrolet) etc, y a jalado a la perfeccion..

Saludos Isaac



"Héctor Miguel" escribió en el mensaje
news:
hola, isaac !

... tengo tres cuadros combinados en Hoja1! en una macro que grabe y no
funciona, quedo como sigue:
... quiero... que se les asigne nuevos valores de .LisFillRange y
tambien de .LinkedCell
... es decir dependiendo del valor de .LinkedCell del cuadro combinado
uno (es uno por que fue el primero que cree) ya sea 1 2 3 ..
... ejecute una macro... que me ajuste los cuadros combinados c2 y 3 con
nuevos valores, pero parece ser que no me funciona...



1) haria falta que comentes [+/- exactamente] cuales serian los 'nuevos'
valores de los c2 y 3... 'en funcion' de tu comentario de...
-> '... dependiendo del valor de .LinkedCell del cuadro combinado
uno... ajuste los cuadros combinados c2 y 3 ...' ????

2) [en via de mientras]... puedes 'aligerar' el codigo que estas usando
con algo +/- como lo siguiente...
en un modulo de codigo 'normal' ==> Sub Asignar_valores_a_combos()
Dim Sig As Byte, Rangos, Celdas
Rangos = Array("a2:a5", "f2:f6", "g2:g6")
Celdas = Array("g7", "f19", "f21")
With Worksheets("hoja1")
For Sig = 1 To 3
With .Shapes("drop down " & Sig).ControlFormat
.ListFillRange = "=hoja2!" & Rangos(Sig - 1)
.LinkedCell = Celdas(Sig - 1)
End With
Next
End With
End Sub

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

__ el codigo expuesto __
ActiveSheet.Shapes("Drop Down 1").Select
With Selection
.ListFillRange = "Hoja2!$A$2:$A$5"
.LinkedCell = "$G$7"
.DropDownLines = 8
.Display3DShading = False
End With
ActiveSheet.Shapes("Drop Down 2").Select
With Selection
.ListFillRange = "Hoja2!$f$2:$f$6"
.LinkedCell = "$f$19"
.DropDownLines = 8
.Display3DShading = False
End With
ActiveSheet.Shapes("Drop Down 3").Select
With Selection
.ListFillRange = "Hoja2!$g$2:$g$6"
.LinkedCell = "$f$21"
.DropDownLines = 8
.Display3DShading = False
End With
End Sub




Respuesta Responder a este mensaje
#3 Héctor Miguel
24/06/2006 - 04:51 | Informe spam
hola, isaac !

... si el usuario en pantalla tenia 4... (COMBOS), y
... si en el combo1 hace referencia a un bloque... por ejemplo de marcas de carros
... ford, chevrolet, nissan, etc. al seleccionar ford, el combo2 y combo3 automaticamente... se modificaran
... el codigo lo disparo con una macro que me dice que si ford=1 -vincular con la celda-
(ubicacion en la lista, chevrolet=2, etc)... la macro que me asigne los rangos [...]



-> 'va de nuez'... :))

1) haria falta que comentes [+/- exactamente] cuales serian los 'nuevos' valores de los c2 y 3... 'en funcion' de tu comentario de...
-> '... dependiendo del valor de .LinkedCell del cuadro combinado uno... ajuste los cuadros combinados c2 y 3 ...' ????

2) en tanto comentas 'donde' estan las listas 'correspondientes' a cada combo y cual combo es 1, 2, 3 y 4...
-> ve si te sirve algo de lo comentado en las siguientes conversaciones: -> http://tinyurl.com/jbt7f

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida