Note: The other languages of the website are Google-translated. Back to English
Log in  \/ 
x
or
x
Inscreva-se  \/ 
x

or

Como ocultar ou reexibir uma determinada forma com base no valor de célula especificado no Excel?

Na verdade, uma determinada forma pode ser ocultada ou mostrada com base no valor de uma célula especificada. O método a seguir pode ajudá-lo.

Ocultar ou exibir uma determinada forma com base no valor de célula especificado com código VBA


Ocultar ou exibir uma determinada forma com base no valor de célula especificado com código VBA


Por exemplo, você deseja reexibir uma determinada forma ao inserir o número 1 na célula A1 ou ocultar essa forma se a célula A1 tiver outros valores. Execute o seguinte código VBA para obtê-lo.

1. Clique com o botão direito na guia da folha que contém a forma que você ocultará ou exibirá e clique em Ver código no menu do botão direito.

2. Então o Microsoft Visual Basic para Aplicações janela aparece. Copie e cole o código VBA abaixo no Código janela.

Código VBA: ocultar ou exibir uma determinada forma com base no valor de célula especificado

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 1 Then _
        Me.Shapes("Oval 6").Visible = (Cells(1, 1).Value = 1)
End Sub

Notas: No código:

1) Linha = 1 e Coluna = 1 indicam a célula específica que está localizada na linha um e na coluna um, Células (1, 1) é a célula A1 correspondente.
2) Valor = 1, o número 1 é o valor específico no qual você deseja mostrar a forma.
3) "Oval 6Ӄ o nome de uma determinada forma.

Você pode alterá-los com base nas suas necessidades.

3. aperte o outro + Q simultaneamente para fechar o Microsoft Visual Basic para Aplicações janela.

A partir de agora, ao inserir o número 1 na célula A1, a forma “Oval 6” é exibida. Mas se você inserir outro valor, como o número 2 na célula A1, a forma “Oval 6” será ocultada imediatamente.


Artigos relacionados:


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Super Formula Bar (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
officetab bottom
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Cornan · 1 years ago
    This article doesn't give any hint as to how one gets the name of a shape.

    I have checked the name manager and the object manager in VBA as well as the context menu - there is no "Properties" menu for shapes.

    So, where is the shape name?
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi Cornan,
      The shape name will be displayed on the Name box of worksheet when selecting the shape. Sorry for the inconvenience.
  • To post as a guest, your comment is unpublished.
    Gus · 2 years ago
    2 questions:

    1. I cant seem to get this code to run and i dont understand why... copied and pasted it exactly as it is there...help!!!


    2. how do i change it for shapes like Shapes.Range(Array("Rounded Rectangle 1"))
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi Gus,
      You must miss something in the operation.
      Supposing your shape name is "Rounded Rectangle 1", please copy the below code into the worksheet code window (this worksheet should contain the specified shape "Rounded Rectangle 1").
      From now on, only typing number 1 into A1 cell can display the shape "Rounded Rectangle 1". If you type in other content, the shape will be hidden.

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Row = 1 And Target.Column = 1 Then _
      Me.Shapes("Rounded Rectangle 1").Visible = (Cells(1, 1).Value = 1)
      End Sub
      • To post as a guest, your comment is unpublished.
        Josh · 6 months ago
        You left out the ":"
  • To post as a guest, your comment is unpublished.
    Piaget · 3 years ago
    I am a newbie in VBA Excel. I am working with this code and I would like to optimize it. This code makes a shape visible on an active cell if value is 1 other values hide it. Range includes J13:AC161. If I will use the code below, it will take me more lines of code. Any help will be much appreciated.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If ActiveSheet.Range("E13").Value = 1 Then
    ActiveSheet.Shapes("rt1").Visible = True
    Else
    ActiveSheet.Shapes("rt1").Visible = False
    End If

    If ActiveSheet.Range("F13").Value = 1 Then
    ActiveSheet.Shapes("rt2").Visible = True
    Else
    ActiveSheet.Shapes("rt2").Visible = False
    End If

    If ActiveSheet.Range("G13").Value = 1 Then
    ActiveSheet.Shapes("rt3").Visible = True
    Else
    ActiveSheet.Shapes("rt3").Visible = False
    End If

    If ActiveSheet.Range("H13").Value = 1 Then
    ActiveSheet.Shapes("rt4").Visible = True
    Else
    ActiveSheet.Shapes("rt4").Visible = False
    End If

    If ActiveSheet.Range("I13").Value = 1 Then
    ActiveSheet.Shapes("rt5").Visible = True
    Else
    ActiveSheet.Shapes("rt5").Visible = False
    End If

    If ActiveSheet.Range("J13").Value = 1 Then
    ActiveSheet.Shapes("rt6").Visible = True
    Else
    ActiveSheet.Shapes("rt6").Visible = False
    End If
    ...

    End Sub
    • To post as a guest, your comment is unpublished.
      crystal · 3 years ago
      Good day,
      Do you mean you want to display or hide lots of specified shapes based on cells in range J13:AC161 with brief code?
  • To post as a guest, your comment is unpublished.
    A Webb · 4 years ago
    This works great for me as long as the value entered is a number. I need it to work on letters like A B C etc: when i use letters it works backwards enter A and it hides i need it to be visible when i enter a letter any ideas
    • To post as a guest, your comment is unpublished.
      C Aubrey · 2 years ago
      You can use letters instead, you just need to add " to either side. E.g. Me.Shapes("Oval 6").Visible = (Cells(1, 1).Value = "A")
      • To post as a guest, your comment is unpublished.
        faisalzainol96 · 2 years ago
        How about if i want to add two values as the input such as : E.g. Me.Shapes("Oval 6").Visible = (Cells(1, 1).Value = "A" Or "B")?
        • To post as a guest, your comment is unpublished.
          bob · 1 years ago
          Me.Shapes("Rounded Rectangle 2").Visible = (Cells(1, 1).Value = "A" Or Cells(1, 1).Value = "B")