Note: The other languages of the website are Google-translated. Back to English
Se connecter  \/ 
x
or
x
INSCRIPTION  \/ 
x

or

Comment masquer ou afficher une certaine forme en fonction de la valeur de cellule spécifiée dans Excel?

En fait, une certaine forme peut être masquée ou non masquée en fonction de la valeur d'une cellule spécifiée. La méthode suivante peut vous aider.

Masquer ou afficher une certaine forme en fonction de la valeur de cellule spécifiée avec le code VBA


Masquer ou afficher une certaine forme en fonction de la valeur de cellule spécifiée avec le code VBA


Par exemple, vous souhaitez afficher une certaine forme lorsque vous entrez le numéro 1 dans la cellule A1, ou masquer cette forme si la cellule A1 contient d'autres valeurs. Veuillez exécuter le code VBA suivant pour y parvenir.

1. Cliquez avec le bouton droit sur l'onglet de la feuille qui contient la forme que vous allez masquer ou afficher, puis cliquez sur Voir le code dans le menu contextuel.

2. Puis le Microsoft Visual Basic pour applications la fenêtre apparaît. Veuillez copier et coller le code VBA ci-dessous dans le Code fenêtre.

Code VBA: Masquer ou afficher une certaine forme en fonction de la valeur de cellule spécifiée

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: Dans le code:

1) Ligne = 1 et Colonne = 1 indiquez la cellule spécifique qui se trouve dans la première ligne et la première colonne, Cells (1, 1) est la cellule A1 correspondante.
2) Valeur = 1, le nombre 1 est la valeur spécifique sur laquelle vous souhaitez afficher la forme.
3) "6 ovale»Est le nom de la certaine forme.

Vous pouvez les modifier en fonction de vos besoins.

3. appuie sur le autre + Q touches simultanément pour fermer le Microsoft Visual Basic pour applications fenêtre.

Désormais, lors de la saisie du numéro 1 dans la cellule A1, la forme «Ovale 6» est masquée. Mais si vous entrez une autre valeur telle que le numéro 2 dans la cellule A1, la forme «Ovale 6» est immédiatement masquée.


Articles connexes:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée...
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammes...
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules...
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
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 · 2 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 · 8 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 · 3 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")