Incluir ultimos archivos en menu personalizado

09/10/2006 - 00:33 por Ivan | Informe spam
hola a todos

estoy creando una barra de menus personalida via codigo. En ella hay
algunos controles integrados que parecen funcionar sin problemas, pero
no consigo que se reflejen los ultimos libros con los que se ha
trabajado, como ocurre en el menu archivo normal, a pesar de asignar el
'Id' (creo que) correspondiente con la siguiente instruccion:

Set opMenu = MenuGeneral.Controls.Add(Type:=msoControlButton, ID:ƒ1)
'Archivo reciente

pensaba que ocurrira como con los demas controles integrados, que
automaticamente haria lo mismo que en la aplicacion 'padre' e incluiria
estos nombres de archivo en mi nuevo menu ( que se llama 'General'),
pero de momento solo consigo que me refleje el caption del control
(&Recent File Name Goes Here)

¿quiza haya que 'incluirlos con el OnAction del mismo menu? si es asi,
¿que instruccion deberia usar para reflejar pej. los 4 ultimos libros
trabajados-he creado sus respectivos 4 controles-?

como datos, por si pudieran estar influyendo, la barra se crea al abrir
el libro (_Open), se oculta/muestra al activar/desactivar y se elimina
en Beforeclose

bueno, de momento solo se me ocurre lo de incluirlos al desplegarse el
menu contenedor (¿con el OnAction de este?), pero no se como
buscarlos/incluirlos

si podeis ayudarme os lo agradezco

un saludo y hasta pronto
Ivan

Preguntas similare

Leer las respuestas

#6 Ivan
09/10/2006 - 17:11 | Informe spam
Hola Francisco, muchas gracias por la ayuda

todavia no se lo que voy a hacer, pero si decido seguir por donde iba,
parece un proc. muy practico (no he tenido tiempo de probarlo), mucho
mas si lo comparas con mi retorcimiento a la hora de conseguir algo
parecido (si quieres, echa un vistazo a mi respuesta a HM)

lo dicho, muchas gracias por tu ayuda

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#7 Héctor Miguel
09/10/2006 - 19:00 | Informe spam
hola, Ivan ! [dejo fracciones de tu consulta al final :( solo por 'facilidad' de lectura ?] :))

[primero, y hasta donde se puede 'suponer' de tus consultas 'relacionadas'... entiendo que]:
si tu archivo/aplicacion sera utilizado/a [casi seguramente] en distintas versiones windows/office/excel...
y [ademas] 'pretendes'... restringir 'ciertas' acciones del usuario [a la vez que 'le das 'faciidades' de operacion] :))
'deberas' [al menos] tomar en consideracion que:
-> a mayor numero de 'acciones' que quieras controlar... MENOR sera la 'simplicidad' de algun codigo 'resultante' :-((
->dicho lo anterior... paso a re/comentar [hasta donde se] tus comentarios en este... :D

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

1) te recuerdo que excel es una aplicacion [sumamente]... 'amigable' para el usuario :D [asi que]...
cualquier 'cosa' que el usuario quiera/sepa/pueda/... 'hacer'... [seguramente] -> 'la va a hacer' ;)

2) para 'mantener actualizada' una barra de menus personalizada 'tratando de darle' la funcionalidad de los MRU...
[segun yo] se necesita un modulo 'de clase' para poder 'monitorear' los eventos 'nativos' de la aplicacion [como]:
- abrir/guardar/cerrar/... un libro 'cualquiera' [sin importar si es el que contiene los codigos 'de control' o no] :))

3) que por cual opcion/alternativa/... me 'decidiria'... [yo ?]...
'en la medida de lo posible'... -> KISS [Keep It Simple and Stupid] :D

4) quieres [solo 'tratar de...'] 'controlar' que acciones podra [o no] hacer un usuario dentro de tu aplicacion ?
[NO es 'infalible'... son SOLO algunas ideas/tips/trucos... son 'combinables'... puedes agregar 'los tuyos'... etc. etc. etc.]
-> revisa el siguiente articulo: -> http://www.sistemaslym.net/vba/excel/exarc1.html

__ 1 __
... comentarte un poco a lo largo de tus respuestas:
a) ...solo esta disponible desde la barra [de menus +
a) 'conservar' la barra [de menus] 'original'... habilitar la lista de los mas usados... personalizar 'el resto' de los comandos :))


en caso de decantarme por esta opcion: si solo dejo algunos de los otros comandos de la barra integrada
el resto estarian disponibles desde 'Personalizar' o similar? me interesaria que no fuera asi



__ 2 __
b) NO se 'actualiza'... si un archivo es abierto a traves de codigo :-((
a menos que lo abras con el parametro correspondiente: -> Workbooks.Open FileName:="x.xls", AddToMRU:=True
c) y [si el archivo se ha cerrado]... la aplicacion se encarga de 'completar' el nombre con la ruta/ubicacion/... en el disco


este era el otro problema que suponia, la actualizacion de los nombres de archivos y el completar su ruta.
Por lo que creo entenderte es posible la actualizacion si se usa el 'parametro' 'adecuado', pero tambien creo intuir que
no es una solucion que te haga mucha gracia (y quiza este totalmente equivocado)



__ 3 __
aunque se que es una pregunta que tiene muchos condicionantes por que optarias tu?

el unico motivo de incluir los archivos es no dejar aun mas 'cegado' al usuario
si quiere volver a un uso normal de la aplicacion sin cerrar el archivo
aunque por otro lado no quiero que pueda acceder a demasiadas cosas del archivo en cuestion
(del que contiene la barra, no del abierto, con el cual volveria a la interfaz normal
salvo que se corra el riesgo de que desde esta pueda interferir en el archivo anterior -pej.: alterar barras, mostrar hojas ocultas, etc)

en el menu de marras ya habia incluido Nuevo, Abrir, Guardar y Salir
Aunque posiblemente ya no lo utilice (con mas motivo viendo el post de Francisco P.)
te pongo la solucion que habia logrado ayer mas o menos a la hora de tus mensajes, para ver si seria adaptable a alguna idea...
tras convertir los comandos? en personalizados, logre 'poner' los nombres 'cortos' en la barra usando los siguientes codigos [...]
supongo que si valiera algo asi, concatenando estos nombres a la ruta ("C:\...\...\...\")
podria usar Open con el parametro que comentas, para que se actualizara en la barra
o al ser personalizado ya no valdria esta formula y habria que recurrir a proc. intermedios? ...
Respuesta Responder a este mensaje
#8 Francisco Parrilla
09/10/2006 - 19:08 | Informe spam
La verdad la solucion esta en sus manos y no entiendo por que la necedad de
hacerlo con msoconttrolbutton cuando con un msocontrolcombobox realizas lo
deseado, todo lo que menciono lo tienes en la ayuda de excel :)

Saludos


Atte.
?T Francisco T?
http://groups.msn.com/ExcelVbaMacrosOffice

El verdadero buscador crece y aprende, y descubre que siempre es el
principal responsable de lo que sucede.
Jorge Bucay

La oscuridad nos envuelve a todos, pero mientras el sabio tropieza en alguna
pared, el ignorante permanece tranquilo en el centro de la estancia.
Anatole France
Respuesta Responder a este mensaje
#9 Ivan
09/10/2006 - 22:31 | Informe spam
hola Hector Miguel, muchas gracias de nuevo (no se donde almacenar ya
los agradecimientos que te debo)

tienes razon, muchas veces la ignorancia, o quizas la propia manera de
ser le hace a uno ser rebuscado, y despues de horas, o dias, o ...,
llegas a una solucion, la miras, y dices, anda, que sencilla, si creo
que es lo primero que pense/deseche. Habra que intentar 'interiorizar'
el KISS

en cuanto al resto, solo un par de comentarios:

el 1º es que en realidad la proteccion que me gustaria imprimir al
archivo es sobre todo de cara a los inexpertos, para evitar que puedan
tener problemas/accidentes al manipularlo/usarlo.

y el 2º, que seguramente conllevara al menos parte de la solucion del
1º, es que me voy a poner a estudiar tu articulo (que dicho sea de
paso hace tiempo que tengo guardado a la espera del momento oportuno y
de tener un poquito mas de idea)

un saludo y gracias de nuevo
Ivan

PD: espero que todavia te queden ganas de echarme una mano a rematar
'aquella biblioteca' cuando consiga terminarla, aunque supongo que tu
escepticismo al respecto no debe ser pequeño. Lo dicho, un saludo.
Respuesta Responder a este mensaje
#10 Ivan
09/10/2006 - 22:33 | Informe spam
Hola Francisco

"Puntos de vista y perspectivas:

nadie ve el mismo horizonte desde el mismo lugar."

Un saludo
Ivan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida