2016-04-19 4 views
0

Je cherche du code qui va changer la couleur d'une forme quand on clique sur une cellule. Exemple la forme est S_IRL qui est l'Irlande et se trouve dans la cellule B22. Ce que je voudrais arriver est que si la cellule B22 forme S_IRL passe de bleu à rouge. Ensuite, si l'on clique sur une autre cellule avec un pays, la forme correspondante devient rouge et la précédente revient à la couleur précédente. Toute aide serait grandement appréciée enter image description hereChanger la couleur de la forme quand on clique sur la cellule

Répondre

1

Vous pouvez ajouter un nouveau sous-programme dans le code de la feuille de calcul qui se déclenche lorsque les changements de sélection sur la feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    Dim strShapeName As String 'Variable to hold the shape name 
    Dim shp As Shape 'Variable to hold a shape object 

    'Detect if the click was in range A:C 
    If Not Intersect(Target, Range("A:C")) Is Nothing Then 

     'Boom... set all the shapes to blue 
     For Each shp In Me.Shapes 
      If Left(shp.Name, 2) = "S_" Then shp.Fill.ForeColor.RGB = RGB(0, 0, 255) 
     Next shp   

     'Grab the shape name from Column A 
     strShapeName = Cells(Target.Row, 1).Value 

     'Set the color of the shape to red 
     Shapes(strShapeName).Fill.ForeColor.RGB = RGB(255, 0, 0) 
    End If 
End Sub 

Cela permet de détecter si le changement de sélection était une cellule dans les colonnes A, B ou C. Si tel était le cas, elle saisira le nom de la forme dans la colonne A, puis définira la couleur de cette forme en rouge.

+0

Vous ne définissez jamais la forme sélectionnée précédente à son ancienne couleur. – OldUgly

+0

@JNevill Je ne sais pas si vous avez vu le commentaire de OldUgly car il ne vous a pas tagué dans le commentaire, mais vous n'avez pas fourni de code pour revenir à la couleur d'origine une fois qu'une autre sélection est faite. –

+1

Oui, il semble que je l'ai laissé. Difficile d'écrire sur mobile – JNevill