Estoy armando un tablero con indicadores y quisiera armar un menu para que los usuarios puedan navegar por las hojas directamente. Otras aplicaciones seria que puedn imprimir las hojas preconfiguradas que les preparo. Se que se puede armar un menu propio y a la vez ocultar el de Excel. O sea convertir el Excel en una aplicación. Jorge.
1 respuesta
Respuesta de ma_ramirez_r
1
1
ma_ramirez_r, Macros en Excel avanzado, apuntando a ser experto
Si la verdad es que si se puede, lo que debes hacer es primero crear tu menu personal, la forma de accesar a ello es dando un click con el botón derecho del mouse en cualquier parte del menu, luego darle personalizar, luego pinchar la Pestaña (Lengüeta, Tab, hoja) Que dice "Barra de Herramientas", y elijes el botón que dice Nueva. Te pedirá un Nombre, tu le defines el que quieras, y le das Aceptar. Te aparecerá una nueva barra. Luego en la Pestaña que dice "Comandos", hay una opción que dice Macros y en la parte derecha te aparecerá una carita feliz que debes arrastrar hacia tu nuevo menu. De ahí una vez más le das click con el botón derecho del mouse a esa carita en donde podrás modificar nombre, la imagen y asociarla a una macro que ya tengas hecha. Para que este menu quede asociado al archivo, una vez terminado lo anterior vas de nuevo a la Pestaña que dice "Barras de Herramientas" y das click en el botón que dice "Adjuntar" Seleccionas tu nueva barra y le dices Copiar, así esta barra estará adjunta siempre a este archivo. Ahora para poder dejar solo ese menu y eliminar las otras barras debes hacer una rutina que debes copiar en el Libro lo que si te recomiendo que en el archivo original crees una nueva hoja y llamala Datos, para dejar ahí grabado las Barras activas que tenga cada usuario y luego al finalizar la macro puedas restaurarlas. 'Esta Macro desactiva todas las barras que tengas activas y te deja 'Solo tu nueva barra personal. Private Sub Workbook_Open() Dim MiBarra As String Dim Linea As Integer Dim Barra As Object Dim NomBarra As String Application.ScreenUpdating = False MiBarra = "" 'Aqui defines el nombre de la barra que tu le difiniste Application.CommandBars(MiBarra).Visible = True Linea = 1 For Each Barra In Application.CommandBars NomBarra = Barra.Name If NomBarra "Worksheet Menu Bar" And NomBarra MiBarra Then If Barra.Visible = True Then Application.Worksheets("Datos").Cells(Linea, 1) = NomBarra Barra.Visible = False Linea = Linea + 1 End If End If Next Barra With Application .CommandBars("Worksheet Menu Bar").Enabled = False End With Application.ScreenUpdating = True End Sub y tambien esta otra 'Esta Macro Restaura las Barras que tengas por defecto. Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim MiBarra As String Dim NomBarra As String Dim Barra As Object Dim Linea As Integer MiBarra = "" 'Aqui defines el nombre de la barraque tu definiste Linea = 1 Do While Valida = True NomBarra = Worksheets("Datos").Cells(Linea, 1) If NomBarra = "" Then Valida = False Else Application.CommandBars(NomBarra).Visible = True Worksheets("Datos").Cells(Linea, 1).ClearContents Linea = Linea + 1 End If Loop Application.CommandBars(MiBarra).Visible = False With Application .CommandBars("Worksheet Menu Bar").Enabled = True End With End Sub En caso que tengas algún problema de que no puedas recuperar los menús ten por ahí un archivo cualquiera que tenga grabada esta rutina en el Libro al Abrirlo. Private Sub Workbook_Open() With Application .CommandBars("Worksheet Menu Bar").Enabled = True End With End Sub
Experto: Te agradezco mucho tu respuesta. Está muy clara y ya pude ver algo. Luego lo pruebo bien y si tengo alguna duda te consulto, pero creo que con lo que me dijiste voy a andar bien. Nuevamente muchas Gracias!