Les galetes ens ajuden a lliurar els nostres serveis. En utilitzar els nostres serveis, accepteu el nostre ús de cookies.
Consell: altres idiomes es tradueixen en Google. Pots visitar el English versió d'aquest enllaç.
Iniciar Sessió
x
or
x
x
Registre
x

or

Com amagar o mostrar una determinada forma basada en el valor especificat de cel·la a Excel?

De fet, una determinada forma es pot amagar o desactivar en funció del valor d'una cel·la especificada. El mètode següent us pot ajudar.

Amaga o oculta una determinada forma en funció del valor de cel·la especificat amb el codi VBA


fletxa blau dreta bombolla Amaga o oculta una determinada forma en funció del valor de cel·la especificat amb el codi VBA


Per exemple, voleu mostrar una determinada forma quan introduïu el número 1 a la cel·la A1, o oculteu aquesta forma si la cel·la A1 és altres valors. Si us plau, executeu el codi VBA següent per aconseguir-ho.

1. Feu clic amb el botó dret a la fitxa del full que contingui la forma que amagarà o mostrarà i, a continuació, feu clic a Veure codi des del menú del botó dret.

2. Aleshores el Microsoft Visual Basic per a aplicacions apareix la finestra. Copieu i enganxeu el codi VBA a sota al codi finestra.

Codi VBA: ocultar o mostrar una determinada forma en funció del valor especificat de la cel·la

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

notes: En el codi:

1) Fila = 1 i Columna = 1 indiqueu la cel·la específica que es troba a la fila una i la columna 1, Cèl·lules (1, 1) és la cel·la A1 corresponent.

2) Valor = 1, el número 1 és el valor específic que voleu mostrar en funció de la forma.

3) "Oval 6"És el nom de la forma determinada.

Podeu canviar-les en funció de la vostra necessitat.

3. Premeu el botó Alt + Q tecles simultàniament per tancar la Microsoft Visual Basic per a aplicacions finestra.

A partir d'ara, en ingressar el número 1 a la cel·la A1, la forma "Oval 6" no s'activa. Però si introduïu un altre valor com el número 2 a la cel·la A1, la forma "Oval 6" s'oculta immediatament.


fletxa blau dreta bombollaArticles relacionats:



Eines de productivitat recomanades

Pestanya d'Office

estrella d'or1 Porteu les pestanyes pràctiques a l'Excel i a un altre programari d'Office, igual que Chrome, Firefox i el nou Internet Explorer.

Kutools for Excel

estrella d'or1 Increïble! Incrementeu la productivitat en 5 minuts. No necessites cap habilitat especial, estalvieu dues hores cada dia.

estrella d'or1 300 Noves característiques per a Excel, Excel molt fàcil i potent:

  • Combina cel·les / files / columnes sense perdre dades.
  • Combina i consolida diverses fulles i llibres.
  • Comparar intervals, copiar diversos rangs, convertir text a data, unitat i conversió de divises.
  • Compte per colors, subtotals de paginació, classificació avançada i filtre súper,
  • Més Seleccioneu / Insereix / Suprimeix / Text / Format / Enllaç / Comentari / Llibres / Eines de full de càlcul ...

Tret de pantalla de Kutools per a Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
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.
    Piaget · 7 months 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 · 7 months 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 · 1 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 months 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")