none
Ocultar via VBA um botão de Controle de Formulário na planilha de Excel RRS feed

  • Pergunta

  • tenho vários botões numa planilha excel que estão ligados a macros que rodam conforme a análise que faço na planilha. Mas gostaria de ocultar alguns deles conforme o estudo/análise que está sendo feito. Se podesse usar um botão de Controle ActiveX eu já tenho o commando que é Sheets("LancamentoDados").CommandButton_CYP3A4.Visible = True, mas estou trabalhando num computador com Excel para Mac que não aceita comandos de Controle ActiveX e por isso estou usando apenas botões de Controles de Formulário com macros fixadas a eles.

     
    terça-feira, 5 de setembro de 2017 17:06

Respostas

Todas as Respostas

  • Sub Botão2_Clique()
    '
    ' Botão2_Clique Macro
    '
    
    '
        
        
        ActiveSheet.Shapes.Range(Array("Button 1")).Select
       Selection.Visible = False
    End Sub


    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 terça-feira, 5 de setembro de 2017 17:15
    terça-feira, 5 de setembro de 2017 17:15
  • Prezado Anderson

    Tentei fazer o que falou mas acho que porque mandei ocultar um botão numa macro que não é a dele, não funcionou. Abaixo a macro, sera que pode me dizer o que estou fazendo de errado ou não é possível ocultar o botão A em uma macro do botão B.

    Sub Botao_MIDAZOLAM_Nao()
    '
    ' aciona Botao_MIDAZOLAM_Nao
    '
    Application.ScreenUpdating = False
    ' Captura o nome do Arquivo
        Dim Arq As Variant
        Arq = ActiveWorkbook.Name
    ' Ativa uma opção e dasativa a outra
        Range("P14").Select
        ActiveCell.FormulaR1C1 = "X"
        Range("M14").Select
        Selection.ClearContents
    ' Limpa os dados anteriores
        Range("C19:C21,K17:L17,R17:S17,P19:P21,M21:N21").Select
        Range("M21").Activate
        Selection.ClearContents
    ' Ocultar os botões que não são necessários
        ActiveSheet.Shapes.Range(Array("Botao_MIDAZOLAM_NaoDoseInf")).Select
           Selection.Visible = False

       
    Application.ScreenUpdating = True
        Range("W14").Select

    End Sub

    terça-feira, 5 de setembro de 2017 22:38
  • Tenta usar "Button 1", "Button 2""Button 3" ...

    Para ver se consegue ocultar algum botão.


    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 quarta-feira, 6 de setembro de 2017 03:28
    quarta-feira, 6 de setembro de 2017 03:13
  • Sub ocultar2()
    
    Dim sh As Object
    For Each sh In Sheets("Planilha1").Shapes
    
    If Left(sh.Name, 6) = "Button" Then
    
    sh.Visible = False
    
    End If
    
    
    Next sh
    
    
    End Sub


    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 quarta-feira, 6 de setembro de 2017 03:17
    quarta-feira, 6 de setembro de 2017 03:17
  • Sub ocultar3()
    
    Dim sh As Object
    For Each sh In Sheets("Planilha1").Shapes
    
    If sh.Name = "Button 1" Then
    
    sh.Visible = False
    
    End If
    Next sh
    End Sub
    Essa vai ocultar todos os botões.

    Anderson Diniz




    quarta-feira, 6 de setembro de 2017 03:25
  • Sub mostrarNomes()
    
    Dim sh As Object
    Dim linha As Long
    linha = 1
    For Each sh In Sheets("Planilha1").Shapes
    
    
    Sheets("Planilha1").Cells(linha, 1) = sh.Name
    linha = linha + 1
    Next sh
    
    
    End Sub
    Aqui vai mostrar os nomes dos botões. Você deve usar esses nomes quando quiser ocultar ou mostrar.

    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 quarta-feira, 6 de setembro de 2017 03:28
    quarta-feira, 6 de setembro de 2017 03:27
  • Anderson,

    Rodei a macro que me mostrou os nomes dos botões, funcionou, mas depois achei o Painel de Objetos e mudei o nome do botão que eu queria ocultar de "Bisel 19" para "Botao 09".

    Tentei rodar a macro abaixo, mas não ocultou o botão que selecionei, o que fiz de errado?

    Sub LancDados_OCULTAR_Botoes1()

    Dim sh As Object
    For Each sh In Sheets("LancamentoDados").Shapes

    If sh.Name = "Botao 09" Then

    sh.Visible = False

    End If
    Next sh
    End Sub

    quarta-feira, 6 de setembro de 2017 11:51
  • Rode a macro que mostra os nomes. Para saber se realmente está com esse nome.

    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 quarta-feira, 6 de setembro de 2017 12:30
    • Marcado como Resposta GoncaloPaulaSoares quarta-feira, 6 de setembro de 2017 13:26
    quarta-feira, 6 de setembro de 2017 12:30
  • agora funcionou, muito obrigado, depois que rodei a macro da lista de nomes, eu copiei o texto do botão  para a macro e funcionou.
    quarta-feira, 6 de setembro de 2017 13:27
  • Olá Anderson, 

    Utilizei essa sua macro para ocultar meus controles de formulário e deu certo. Queria esse "mesmo" comando, mas para voltar a exibi-los... É possível? 

    Para ocultá-los, ficou assim:

       ActiveSheet.Shapes.Range(Array("Option Button 55")).Select
       Selection.Visible = False
       ActiveSheet.Shapes.Range(Array("Option Button 56")).Select
       Selection.Visible = False

    Queria outro comando para voltar a exibir esses mesmos controles e não estou acertando... :/


    segunda-feira, 6 de janeiro de 2020 12:53