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

#6 J.LL.R
02/03/2005 - 15:37 | Informe spam
Ok Héctor y muchas gracias por su ayuda y por la
información.
Un saludo J.LL.R


hola, J.LL.R !

... funciona... para agregar mas submenu repeti el




With .Controls.Add(msoControlButton, , , , True)
... y para agregar otro menu With .Controls.Add


(msoControlPopup, , , , True)
1- Es asi como se agregan mas menu y submenu ?.



=> para el 'tipo' de estructura propuesto en el


ejemplo... si ;)

2- A esta barra o los submenu se le puede adicionar




comandos (por codigo)
... por ejemplo Guardar, Abrir, como se hace al


personalizar una barra.?

=> si, solo necesitas ->saber/conocer<- o la


propiedad 'caption' o la propiedad 'id' [segun el 'tipo'
de control]
-> toma en cuenta que segun el idioma de la version,


el 'caption' pudiera 'variar'
-> para consultar los 'id' de los comandos


integrados visita: http://support.microsoft.com/kb/q213552/

3- Porque a veces al poner un punto se despliega una




lista de propiedades y otras veces no
... por ejemplo dentro del with no se me despliega ?.

=> NO se 'despliega' [en el ejemplo propuesto] SOLO en el


bloque with ->del control de 'segundo nivel'<-
SI dentro de los with de 'niveles superiores' [o los


que estan 'directamente emparentados' con
objetos 'definidos']

si cualquier duda... ¿comentas?
saludos,
hector.


.

Respuesta Responder a este mensaje
#7 Coringo
02/03/2005 - 16:13 | Informe spam
Hola Héctor, perdona que me incluya en este hilo pero estoy
interesado en esta forma de hacer menu y me gusta ,pues yo
he hecho menu personalizado y al asignar la macro, sin dar
clic se me activa sola y de esta forma por codigo no,lo
que me pasa es, que yo agregue un combo que me guarda el
nombre de las hojas y 2 menu .
Pregunto como ir a la hoja que escoja en el combo,he
probado de varias forma y no lo logro.
Gracias por su ayuda.
Coringo

Codigo que yo adicione dentro.

'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
End With






Ok Héctor y muchas gracias por su ayuda y por la
información.
Un saludo J.LL.R


hola, J.LL.R !

... funciona... para agregar mas submenu repeti el




With .Controls.Add(msoControlButton, , , , True)
... y para agregar otro menu With .Controls.Add


(msoControlPopup, , , , True)
1- Es asi como se agregan mas menu y submenu ?.



=> para el 'tipo' de estructura propuesto en el


ejemplo... si ;)

2- A esta barra o los submenu se le puede adicionar




comandos (por codigo)
... por ejemplo Guardar, Abrir, como se hace al


personalizar una barra.?

=> si, solo necesitas ->saber/conocer<- o la


propiedad 'caption' o la propiedad 'id' [segun el 'tipo'
de control]
-> toma en cuenta que segun el idioma de la




version,
el 'caption' pudiera 'variar'
-> para consultar los 'id' de los comandos


integrados visita:


http://support.microsoft.com/kb/q213552/

3- Porque a veces al poner un punto se despliega una




lista de propiedades y otras veces no
... por ejemplo dentro del with no se me despliega ?.

=> NO se 'despliega' [en el ejemplo propuesto] SOLO en




el
bloque with ->del control de 'segundo nivel'<-
SI dentro de los with de 'niveles superiores' [o




los
que estan 'directamente emparentados' con
objetos 'definidos']

si cualquier duda... ¿comentas?
saludos,
hector.


.



.

Respuesta Responder a este mensaje
#8 Héctor Miguel
02/03/2005 - 21:43 | Informe spam
hola, Coringo !

... agregue un combo que me guarda el nombre de las hojas y 2 menu... como ir a la hoja que escoja en el combo [...]



1.- no olvides asignar un 'caption' al control_combo [para hacer mas facil su referencia]
2.- el codigo 'minimo indispensable' en la macro que se asigna ->al control_combo<- seria +/- como sigue:
Private Sub NombreDeLaMacro()
Sheets(Application.CommandBars("MiBarra").Controls("El caption del control").Text).Activate
End Sub

=> toma nota que la 'interctividad' con el usuario NO esta 'considerada' <= OJO
[p.e. si se modifican los nombres de las hojas, se agregan/eliminan hojas, etc.]
=> solo por si lo desconoces... existe una forma mas sencilla y 'directa' de seleccionar hojas [cuando son demasiadas]
-> da un click-derecho sobre las flechas de direccion a la izquierda de las pestañas con los nombres de las hojas y... ;)

si cualquier duda... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#9 coringo
03/03/2005 - 13:21 | Informe spam
Hola hector,no se donde poner la macro y el caption que me
dices y donde me pones .text, yo pongo el punto y en la
lista no esta esa propiedad text ,no se si es lo mismo
crear un combo por codigo,eso lo copie de la ayuda de excel
si me pudieras explicar esto pues no entiendo.
Un saludo Coringo



hola, Coringo !

... agregue un combo que me guarda el nombre de las




hojas y 2 menu... como ir a la hoja que escoja en el combo
[...]

1.- no olvides asignar un 'caption' al control_combo


[para hacer mas facil su referencia]
2.- el codigo 'minimo indispensable' en la macro que se


asigna ->al control_combo<- seria +/- como sigue:
Private Sub NombreDeLaMacro()
Sheets(Application.CommandBars("MiBarra").Controls("El


caption del control").Text).Activate
End Sub

=> toma nota que la 'interctividad' con el usuario NO


esta 'considerada' <= OJO
[p.e. si se modifican los nombres de las hojas, se


agregan/eliminan hojas, etc.]
=> solo por si lo desconoces... existe una forma mas


sencilla y 'directa' de seleccionar hojas [cuando son
demasiadas]
-> da un click-derecho sobre las flechas de


direccion a la izquierda de las pestañas con los nombres
de las hojas y... ;)

si cualquier duda... ¿comentas?
saludos,
hector.


.

Respuesta Responder a este mensaje
#10 Héctor Miguel
04/03/2005 - 00:57 | Informe spam
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("MiLista").Text).Activate
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida