Menú personalizado

25/02/2005 - 18:57 por J.LL.R | Informe spam
Hola a todos los amigos del foro.
Mi pregunta es:
hice un menú personalizado en la barra de menú y le asigne
una macro a la opción ,pero quiero que este solo aparezca
solo en mi libro y no se como quitarlo al salir y ponerlo
al abrir el libro ,Si alguien me puede ayudar.
Gracias por su colaboracion.

Preguntas similare

Leer las respuestas

#11 coringo
04/03/2005 - 13:37 | Informe spam
Hola hector,yo tengo el codigo tal y como esta en este
hilo y puse el codigo del caption y OnAction como usted
dice,pero me daba un error de argumento y por eso le
pregunte donde se ponia pues como era un combo pense que
tal vez era en otra parte,parece que es un problema del
office XP ,pues hoy lo probe en el trabajo y funciona
perfecto aqui el office es 2000 ,no se porque da ese error
en el XP,pero ahora tengo otra duda pues en la macro
("MiLista").Text).Activate ,al yo poner el punto despues
del nombre MiLista"). en la lista que se despliega no
aparece Text y no da error en el office 2000.
Un saludo y muchas gracias por su ayuda.
coringo


hola, coringo !

... donde poner la macro y el caption
... donde me pones .text, yo pongo el punto y en la




lista no esta esa propiedad text [...]

1.- la macro 'se pone' [o asigna] como


propiedad '.OnAction' ->del control<- despues de 'crearlo'
la propiedad '.Caption' es para no tener


que 'ubicar' el control 'por posicion' [o indice] por
si 'se moviera'
[en este caso, el control es el boton de herramienta


para listas ->msoControlComboBox<-]
2.- algunas propiedades no estan [o aparecen


como] 'disponibles por omision' [pero... 'ahi estan'] ;)
3.- no te puse el ejemplo 'completo' porque 'asumi' que


lo habias tomado del ejemplo anterior
[y porque solo transcribiste una parte del codigo


que usas] :(

saludos,
hector.
una especie de 'complemento' a la fraccion del codigo


que expusiste ==> 'con esto agrego un combo con el nombre de las hojas
Set mycontrol = CommandBars("Mibarra").Controls _
.Add(Type:=msoControlComboBox, Before:=3)
Dim n As Integer
For n = 1 To Sheets.Count
If Left(Sheets(n).Name, 4) = "Hoja" Then
mycontrol.AddItem Sheets(n).Name, Index:=n
End If
Next n
With mycontrol
.DropDownLines = Sheets.Count
.DropDownWidth = 75
.ListHeaderCount = 3
' aqui las lineas 'complementarias' '
.Caption = "MiLista"
.OnAction = "MiMacro"
End With
[ el resto de tu codigo ]
' y la macro 'asignada' el control '
Sub MiMacro()
Sheets(Application.CommandBars("Mibarra").Controls
End Sub


.

Respuesta Responder a este mensaje
#12 Héctor Miguel
05/03/2005 - 00:36 | Informe spam
hola, coringo !

primero [si no te 'incomoda'] me gustaria 'regresar al tu' [en lugar del 'usted'] :))

... me daba un error de argumento... parece que es un problema del office XP
... lo probe... y funciona perfecto... office es 2000 [...]
... otra duda pues en la macro ("MiLista").Text).Activate
... al yo poner el punto despues del nombre MiLista").
... lista que se despliega no aparece Text y no da error en el office 2000.



1.- en relacion con la falla presentda por el xp...
[solo] existe la posilibidad de que el office se hubiera instalado de manera 'recortada'
[o se hubieran omitido algunas de las caracteristicas de instalacion opcional] -?-
2.- con relacion a que la propiedad [.Text] no se despliega con las propiedades del control con el '.'
la propiedad .Text NO es una propiedad del 'comun' de los objetos de tipo 'CommandBarControl'
[p.e. msoControlButton NI msoControlPopUp]... SOLO para los del tipo msoControlComboBox
-> si 'necesitas' que se despliegue en la lista de propiedades 'disponibles'... 'tendrias que...'
-> utilizar una variable 'especifica' y 'debidamente asignada' al tipo de control [p.e.]
modificando el codigo que 'toma' el dato de la hoja segun la seleccion en el controlCombo ==Private Sub MiMacro()
Dim MiMenu As CommandBarComboBox
Set MiMenu = Application.CommandBars("Mi barra").Controls("MiLista")
Sheets(MiMenu.Text).Activate
Set MiMenu = Nothing
End Sub

si cualquier duda... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#13 coringo
08/03/2005 - 22:16 | Informe spam
Hola hector, no se que pasó,pero el que traje al trabajo
y con el office 2000 da bien ,me lleve una copia para la
casa y ahora si trabaja bien con el XP.
Muchas gracias por su tiempo y colaboración.
Saludos coringo.


hola, coringo !

primero [si no te 'incomoda'] me gustaria 'regresar al


tu' [en lugar del 'usted'] :))

... me daba un error de argumento... parece que es un




problema del office XP
... lo probe... y funciona perfecto... office es 2000




[...]
... otra duda pues en la macro




("MiLista").Text).Activate
... al yo poner el punto despues del nombre MiLista").
... lista que se despliega no aparece Text y no da




error en el office 2000.

1.- en relacion con la falla presentda por el xp...
[solo] existe la posilibidad de que el office se


hubiera instalado de manera 'recortada'
[o se hubieran omitido algunas de las caracteristicas


de instalacion opcional] -?-
2.- con relacion a que la propiedad [.Text] no se


despliega con las propiedades del control con el '.'
la propiedad .Text NO es una propiedad del 'comun' de


los objetos de tipo 'CommandBarControl'
[p.e. msoControlButton NI msoControlPopUp]... SOLO


para los del tipo msoControlComboBox
-> si 'necesitas' que se despliegue en la lista de


propiedades 'disponibles'... 'tendrias que...'
-> utilizar una variable 'especifica' y 'debidamente


asignada' al tipo de control [p.e.]
modificando el codigo que 'toma' el dato de la hoja


segun la seleccion en el controlCombo ==>Private Sub MiMacro()
Dim MiMenu As CommandBarComboBox
Set MiMenu = Application.CommandBars("Mi


barra").Controls("MiLista")
Sheets(MiMenu.Text).Activate
Set MiMenu = Nothing
End Sub

si cualquier duda... ¿comentas?
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