Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Excel mostra menus ao sair da tela

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Bruno Capelli
Colaborador
Colaborador
Mensagens: 52
Registrado em: Ter Set 01, 2015 11:16 am

Excel mostra menus ao sair da tela

Mensagem por Bruno Capelli »

Pessoal estou usando o seguinte código para exibir o excel em modo cheio porém se sair da tela seja por minimizar ou alt tab ele perde a função gostaria que ele só voltasse se eu desse o comando, podem me ajudar?

Grato!


Private Sub Workbook_Open()
With Application

.DisplayFormulaBar = False
.DisplayAlerts = False
.DisplayFullScreen = True
.DisplayStatusBar = False
End With

With ActiveWindow



.DisplayHeadings = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
.DisplayGridlines = False

End With

End Sub

Private Sub Workbook_Deactivate()

With Application

.DisplayAlerts = True
.DisplayFormulaBar = True
.DisplayFullScreen = False
.DisplayStatusBar = True
End With

With ActiveWindow

.DisplayHeadings = True
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
.DisplayGridlines = True

End With
End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Excel mostra menus ao sair da tela

Mensagem por srobles »

Fala Bruno, blza cara?

Faça o seguinte :

1) Remova o evento Window_Deactivate ;
2) Adicione o evento Window_Resize e chame novamente o evento Workbook_Open ;
3) Veja qual seria o melhor evento ou ocasião para utilizar os códigos contidos no evento Window_Deactivate ;

Teste aí e nos retorne ok?

Abs


Bruno Capelli
Colaborador
Colaborador
Mensagens: 52
Registrado em: Ter Set 01, 2015 11:16 am

Re: Excel mostra menus ao sair da tela

Mensagem por Bruno Capelli »

Saulo, meu amigo!

Bom te encontrar novamente!

Cara é o seguinte deu certinho tua ajuda, ficou assim:


Private Sub Workbook_Open()

With Application

.DisplayFormulaBar = False
.DisplayAlerts = False
.DisplayFullScreen = True
.DisplayStatusBar = False
End With

With ActiveWindow

.DisplayHeadings = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
.DisplayGridlines = False

End With

End Sub

Private Sub Workbook_WindowResize(ByVal Wn As Window)
Workbook_Open
End Sub


*Mas preciso usar um botão para voltar a exibir o excel estou usando este mas não exibe o menu principal!


Private Sub Mostrar_sim_nao_Click()

If Mostrar_sim_nao.Value = True Then


With Application

.DisplayFormulaBar = True
.DisplayAlerts = False
.DisplayFullScreen = True
.DisplayStatusBar = False
End With

With ActiveWindow

.DisplayHeadings = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
.DisplayGridlines = False

End With

Else

With Application

.DisplayAlerts = True
.DisplayFormulaBar = False
.DisplayFullScreen = False
.DisplayStatusBar = True
End With

With ActiveWindow

.DisplayHeadings = True
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
.DisplayGridlines = False

End With

End If

End Sub


De carona gostaria de te perguntar se é possível inserir um botão com um código que habilite e desabilite o "MODE DE DESING" valeu!


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Excel mostra menus ao sair da tela

Mensagem por srobles »

Fala Bruno, tudo bem?

Cara, quanto a utilização do ToggleButton para ativar o modo Fullscreen, tente :

Código: Selecionar todos

Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
        With Application
        
        .DisplayFormulaBar = True
        .DisplayAlerts = False
        .DisplayFullScreen = True
        .DisplayStatusBar = False
        End With
        
        With ActiveWindow
        
        .DisplayHeadings = False
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False
        .DisplayGridlines = False
        
        End With
        ToggleButton1.Caption = "Normal"
    Else
       
        With Application
        
        .DisplayAlerts = True
        .DisplayFormulaBar = False
        .DisplayFullScreen = False
        .DisplayStatusBar = True
        End With
        
        With ActiveWindow
        
        .DisplayHeadings = True
        .DisplayHorizontalScrollBar = True
        .DisplayVerticalScrollBar = True
        .DisplayWorkbookTabs = True
        .DisplayGridlines = False
        
        End With
        ToggleButton1.Caption = "FullScreen"
    End If
End Sub
Agora, quanto a trabalhar com o Modo de Design, estou vasculhando a internet para saber se é possível. Caso os gurus aqui do fórum saibam, favor nos ajudem :mrgreen:

Experimente isso e nos retorne.

Abs
Editado pela última vez por srobles em Seg Nov 30, 2015 1:22 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Excel mostra menus ao sair da tela

Mensagem por srobles »

Bruno,

Encontrei a solução para o modo design :

Adicione um módulo na sua pasta de trabalho e cole o código abaixo :

Código: Selecionar todos

Sub ModoDesign()
With ActiveSheet.Shapes.Range(Array("Button 5")) 'ESTE BOTÃO VOCÊ DEVE ADICIONAR NA PLANILHA E DEVE SER DO TIPO CONTROLE DE FORMULARIO. PRESTE ATENÇÃO AO NUMERO DO BOTÂO E MUDE AQUI O MESMO.
    .Select
    Dim cpBotao As String
    cpBotao = Selection.Characters.Text
    
        If cpBotao = "Modo Design" Then
            Selection.Characters.Text = "Modo Normal"
            DesignMode True
        End If
        If cpBotao = "Modo Normal" Then
            Selection.Characters.Text = "Modo Design"
            DesignMode False
        End If
End With
End Sub

Sub DesignMode(bEnter As Boolean)
Dim cbrs As CommandBars
Const sMsoName As String = "DesignMode"

    Set cbrs = Application.CommandBars
    If Not cbrs Is Nothing Then
        If cbrs.GetEnabledMso(sMsoName) Then
            If bEnter <> cbrs.GetPressedMso(sMsoName) Then
                cbrs.ExecuteMso sMsoName
                Stop
            End If
        End If
    End If
End Sub
Na planilha, insira um botão do tipo controle de formulário, não insira um controle ActiveX ok?
Clique com o botão direito do mouse nesse botão e selecione atribuir macro e selecione a macro ModoDesign.
Depois de atribuir a macro ao botão, se preferir ocultar a macro na janela Macros do excel, adicione Option Private Module na primeira linha do módulo.

Esta sub DesignMode encontrei no fórum da Microsoft : https://social.msdn.microsoft.com/Forum ... m=exceldev

Teste e nos retorne.

Abs


Bruno Capelli
Colaborador
Colaborador
Mensagens: 52
Registrado em: Ter Set 01, 2015 11:16 am

Re: Excel mostra menus ao sair da tela

Mensagem por Bruno Capelli »

Saulo conseguir fazer até aqui obrigado, gostaria de adaptar este código para a seguinte função:


Sub ModoDesing_on()
EnterExitDesignMode True
End Sub

Sub ModoDesing_off()
EnterExitDesignMode False
End Sub

Sub EnterExitDesignMode(bEnter As Boolean)
Dim cbrs As CommandBars
Const sMsoName As String = "DesignMode"

Set cbrs = Application.CommandBars
If Not cbrs Is Nothing Then
If cbrs.GetEnabledMso(sMsoName) Then
If bEnter <> cbrs.GetPressedMso(sMsoName) Then
cbrs.ExecuteMso sMsoName
Stop
End If
End If
End If
End Sub


Gostaria que um clique em um botão de formulário ative o modo de desing salve a planilha e desabilite o mode De Desing
já tentei da seguinte maneira:

Sub Botao()
Call ModoDesing_on
ActiveWorkbook.Save
call modoDesinf_off
End Sub

Mas ele só faz o primeiro comando!

Me ajuda?!


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Excel mostra menus ao sair da tela

Mensagem por srobles »

Bruno,

Apenas para que eu possa entender :

Porquê o modo de design se faz necessário? Não me entenda mal, mas não vejo no que isso seria útil.

Na rotina que postei, somente o primeiro comando é executado pois quando se ativa o modo de Design, a execução do restante do código é interrompida automaticamente, não sendo possível continuar trabalhando com macros e/ou VBA, simples assim. :lol:

A única solução seria utilizar ao menos dois botões do tipo Controle de formulário, um ativaria o modo de Design e o outro salvaria o documento e desativaria o modo de Design.

Segue em anexo um exemplo.

abs
Anexos
Modo_Design.zip
(22.43 KiB) Baixado 220 vezes


Bruno Capelli
Colaborador
Colaborador
Mensagens: 52
Registrado em: Ter Set 01, 2015 11:16 am

Re: Excel mostra menus ao sair da tela

Mensagem por Bruno Capelli »

Vou verificar Saulo.

Bem eu criei um relatório para a empresa que trabalho onde pretendo que todas as filias usem,
a pasta de trabalho contém muitas formulas e códigos, e não esta bloqueada pois assim preferir
para que quem deseje estudar tenha a planilha aberta, porém eu adicionei um código Vba para
que a planilha não salve, assim os gestores poderão usa-la e edita-la se assim desejarem porem nao consiguirao
salva-la, apenas poderá savlar os analistas que atualizaram o banco de dados esta planilha só pode ser salva em Modo de Desing
em uma guia que tem acesso restrito, seria apenas para que fique mais prático.

Valeu Saulo!

Passarei a planilha pra vc dar uma olhada!


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Excel mostra menus ao sair da tela

Mensagem por srobles »

Bruno, boa tarde!

Ok amigo. Estou no aguardo!

Abs


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder