Notifications
Clear all

GetEnable Não funciona - Ribbon

3 Posts
2 Usuários
0 Reactions
746 Visualizações
(@jamesbyron)
Posts: 12
Eminent Member
Topic starter
 

Bom dia pessoal!

Estou com dificuldades para ativar um botão em uma ribbon personalizada conforme permissões carregadas por usuario. 

O excel desativa o botão e não ativa de jeito nenhum, mesmo a opção sendo verdadeira.

Invalidei o botão utilizando: MiRibbon.InvalidateControl ("customButton")

Logo o evento para validar novamente o botão é carregado, porém nada acontece.

Select Case control.ID
Case "customButton"
Enabled = True
Debug.Print "Verdadeiro " & Now
End Select

Coloquei um arquivo de modelo em anexo.

Agradeço a atenção.

 

 
Postado : 30/07/2023 12:47 pm
nelsonst
(@nelsonst)
Posts: 38
Eminent Member
 

você deve usar o método InvalidateControlMso em vez do InvalidateControl quando estiver lidando com controles incorporados (os que já existem na faixa de opções do Excel).

InvalidateControl é usado para controles personalizados criados pelo usuário.

O evento getEnabled é o que você usará para habilitar/desabilitar o botão na faixa de opções.

 

Aqui está um exemplo de como você pode fazer isso:

 

Sub yourCustomRibbon_onLoad(ribbon As IRibbonUI)

Set miRibbon = ribbon
miRibbon.InvalidateControl ("customButton") ' Agora a função getEnabled será chamada para o customButton

End Sub

' Esta função é chamada quando a faixa de opções (Ribbon) quer saber se um botão está habilitado ou não.

Sub getEnabled(control As IRibbonControl, ByRef enabled)

Select Case control.ID
Case "customButton"
enabled = True ' Muda o estado de enabled para Verdadeiro, o que habilitará o botão.
Debug.Print "Verdadeiro " & Now
End Select

End Sub

 
Postado : 01/08/2023 12:10 pm
(@jamesbyron)
Posts: 12
Eminent Member
Topic starter
 

Esses dois procedimentos já constam no arquivo modelo que subi.

Só não entendo porque nos meus arquivos, mesmo quando a condição é verdadeiro o botão personalizado na ribbon não fica ativo.

 
Postado : 01/08/2023 11:25 pm