Rectangles (shapes) à renommer

Bandoulier

XLDnaute Junior
Bonjour à toutes et à tous,

J'ai fait une feuille Excel sur la mythologie grecque. Elle comporte 288 rectangles (shapes) affichant le nom des dieux ou héros et reliés par des traits (line).
Sur cette feuille, j'ai la liste (AG1:AG288) de tous les noms contenus dans les rectangles.
Je voudrais maintenant faire deux choses :
1) Que le nom de chaque rectangle soit le texte affiché dans le rectangle. J'ai fait cette procédure qui ne fonctionne pas !

For Each Cell In Range("AG1:AG288")
Selection.ShapeRange.Name = Cell.Value
Next

2) Je voudrais qu'en mettant le focus sur une cellule de la liste (AG1:AG288) le rectangle portant le même nom se colorie en rouge.
Là … je cale aussi !

Si un(e) spécialiste pouvait me mettre sur la piste, ça m'enlèverait une sacrée épine du pied !
Merci d'avance
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Rectangles (shapes) à renommer

Bonjour Bandoulier,

Si un(e) spécialiste pouvait me mettre sur la piste................

Je n'ai pas la prétention d'être le spécialiste qui va solutionner le problème
........ mais juste pour te signaler que si tu joins ton fichier tu augmentera considérablement les chances d'avoir un réponse adaptée à ton besoin

un bout de fichier représentatif contenant 10 shapes et des données de AG1--> AG10 fera l'affaire
et évitera au répondeur de devoir tout construire afin de tester

à+
Philippe
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Rectangles (shapes) à renommer

Bonjour,


Code:
Sub essai()
  For Each s In ActiveSheet.Shapes
    If s.Type = 1 Then
       tmp = s.TextFrame.Characters.Text
       If Err = 0 Then s.Name = s.TextFrame.Characters.Text
    End If
  Next s
End Sub

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([L1:L15], Target) Is Nothing Then
    For Each s In ActiveSheet.Shapes
      If s.Type = 1 Then s.Fill.ForeColor.RGB = RGB(255, 255, 255)
    Next s
    On Error Resume Next
    ActiveSheet.Shapes(Target).Fill.ForeColor.RGB = RGB(255, 0, 0)
  End If
End Sub

JB
 

Pièces jointes

  • Exemple-1.xls
    74.5 KB · Affichages: 53
  • Exemple-1.xls
    74.5 KB · Affichages: 60
  • Exemple-1.xls
    74.5 KB · Affichages: 57
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Rectangles (shapes) à renommer

re tous jb:)
cela devrait marcher sans renommer enfin je pense avec 2003 je sais pas???

Code:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If Not Intersect(T, [l1:l15]) Is Nothing And T.Count = 1 Then
 For Each s In ActiveSheet.Shapes
   If s.Type = 1 Then
    s.Fill.ForeColor.RGB = RGB(255, 255, 255)
    If s.TextFrame.Characters.Text = T Then s.Fill.ForeColor.RGB = RGB(248, 36, 14)
  End If
  Next
 End If
End Sub
 

Statistiques des forums

Discussions
312 466
Messages
2 088 662
Membres
103 910
dernier inscrit
amor57