VIDEO N° 4 (1ra parte tema Ribbon)
1- Para agregar aclaraciones a los botones, además del label podemos utilizar uno o los 2 atributos siguientes: screentip y supertip. El resultado se verá como en la imagen.
<button
id="Button12" label="Listas del Sistema" screentip="Actualiza listas del
Sistema" supertip="Para modificar y actualizar listas de: unidades y
otras listas." imageMso="AccessRelinkLists" size="large"
onAction="Boton12"
2- Una lista desplegable sería como un subgrupo. Se pueden declarar los mismos atributos que para los botones. Lo cerramos del mismo modo que hacemos con el grupo. En ese caso el código tendrá la siguiente estructura:
<group
id="Group4" label="Gestion de Usuarios">
<menu id="Menu3"
label="Usuarios" size="large" image="usuarios" >
<button
id="Button9" label="Registrar Usuario" onAction="Boton9" />
<button
id="Button10" label="Modificar Usuario" onAction="Boton10" />
<button
id="Button11" label="Eliminar Usuario" onAction="Boton11" />
</menu>
</group>
3- Para este tipo de modelo (donde luego haremos mención a cada elemento de la cinta para habilitarlos o no), en el Editor de Excel escribiremos la siguiente macro donde además declaramos la variables como públicas ya que serán utilizadas en varios subrutinas:
Option
Base 1
Public Cinta As IRibbonUI
Public RetVal(16) As
Boolean 'cantidad de botones
Sub CargarCinta(CintaDeExcel
As IRibbonUI)
Set
Cinta = CintaDeExcel
frm_Login.Show
End Sub
Y en el Editor CustomUI desde la primer instrucción indicaremos que al abrir el libro se ejecute esa subrutina:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon.CargarCinta">
4- Los botones se numerarán siguiendo el orden de aparición para poder, mediante un bucle, activarlos o no según categoría de usuario.
En el grupo Gestión de Usuarios agregamos un botón y un desplegable con 3 opciones quedando así la numeración:
<group
id="Group4" label="Gestion de Usuarios">
<button id="Button8"
label="Cerrar sesion" imageMso="StartTimer"
size="large" onAction="Boton8" />
<menu id="Menu3"
label="Usuarios" size="large" image="usuarios"
>
<button id="Button9" label="Registrar
Usuario"
onAction="Boton9" />
<button id="Button10" label="Modificar Usuario" onAction="Boton10" />
<button id="Button11" label="Eliminar
Usuario"
onAction="Boton11" />
</menu>
</group>
NOTA: si relacionamos el número de botón con el nombre de la macro nos ahorraremos dificultades a la hora de realizar algún cambio (como agregar o quitar botones).
5- Las opciones que pueden ser habilitadas o no contarán además con el siguiente atributo: getEnabled (inhabilitar) o getVisible (ocultar)
<button id="Button9" label="Registrar Usuario" onAction="Boton9" getEnabled = "RetornoDelBoton9" />
Donde le estamos indicando que estará habilitado o no según el valor de la variable RetornodelBoton.
6- En Excel guardaremos en 2 celdas de una hoja los valores FALSO y VERDADERO (en libro de ejemplo se utilizaron L1:L2 de hoja Login)
7- En el editor de Excel tendremos los siguientes códigos:
7- En el editor de Excel tendremos los siguientes códigos:
- En el userform LOGIN declaramos la matriz con la cantidad de botones que tendrá nuestra cinta en total:
Option Base 1
Private Sub btn_Registrar_Click()
Dim rango As Range
Dim vBoton(16) As Boolean 'cant de botones en la cinta
Application.ScreenUpdating = False
- En la macro del botón INGRESAR se evaluará la categoría del usuario que se está logeando. Por ejemplo, con el siguiente código le habilitamos los botones del 6 al 13 y deshabilitamos los botones del 14 al 16 para el usuario de categoría 'Admin', omitiendo el botón 8 que no sufrirá cambios.
ElseIf Status = "Admin" Then
For x =6 To 13
'omitimos el botón 8 que no cambia para ningún usuario
if x <> 8 Then
'omitimos el botón 8 que no cambia para ningún usuario
if x <> 8 Then
vBoton(x) =
Sheets("Login").[L2] ‘aquí
se guarda el texto VERDADERO
RetVal(x) = vBoton(x)
Cinta.InvalidateControl ("Button" & x)
End If
End If
Next x
For x = 14 To 16
vBoton(x) =
Sheets("Login").[L1] ‘aquí
se guarda el texto FALSO
RetVal(x) = vBoton(x)
Cinta.InvalidateControl ("Button" & x)
Next x
- En el módulo donde colocamos las macros de llamada a las opciones de la cinta, también agregaremos las de cada botón de Retorno (ajustar el número)
Sub RetornoDelBoton9(control As IRibbonControl, ByRef ValorDevuelto)
ValorDevuelto = RetVal(9)
End Sub
End Sub
8- Podemos hacer una combinación de atributos o modo en que se muestren los botones, ocultando algunos e inhabilitando otros.
Por ejemplo en la segunda imagen, para un usuario ocultamos los 2 últimos controles del grupo de Guardado con getVisible (número 6 y 7 de control). El 8 queda sin cambios y el resto solo se inhabilitó (getEnabled).
Así se verá para un usuario con todos los permisos:
No hay comentarios.:
Publicar un comentario