retourner le nom d'un shape sélectionné

Louanis

XLDnaute Nouveau
Bonjour,
j'ai cherché désespérément la ligne de code mais je ne trouve pas.
Je voudrais pouvoir dans une macro (et non un msgbox), retrouver le nom d'un shape sélectionné dans une feuille.
exemple:
dans la feuille "Carte", j'ai plusieurs shapes que j'ai créé (Forme libre) dont BVMât, ou encore BVJean.
Je sélectionne BVMât et je souhaite via une macro le colorer en vert et en même temps que dans une autre feuille ("données_carte"), la cellule correspondant au BVMât affiche le chiffre 2.

sub BVcoul()

On Error GoTo fin
nom = Sheets("Carte").ActiveShapes.name '?????'
With Selection.ShapeRange.Fill
.Visible = msoTrue
.Solid
.ForeColor.RGB = RGB(146, 208, 80)
.Transparency = 0
End With
Range("nom").value=2
Exit Sub
fin:
MsgBox ("Vérifiez qu'au moins un bassin soit sélectionné!")
End Sub


Merci d'avance pour votre aide.
Cdl.
 

Modeste geedee

XLDnaute Barbatruc
Re : retourner le nom d'un shape sélectionné

Bonsour®
si le Shape est actif cela signifie qu'il est sélectionné
donc ajouter l'événement Clic à cet objet

:rolleyes: ex:
VB:
Sub Ellipse2_Clic()
    Dim Monshape, reponse, couleur As Double
    Monshape = Application.Caller
    reponse = MsgBox(Monshape & Chr(10) & "change couleur", vbYesNo + vbQuestion, "XLD")
   If reponse = vbYes Then
   With ActiveSheet
        couleur = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
        .Shapes(Monshape).Fill.ForeColor.RGB = couleur
        .Cells(1 + Rnd() * 10, 1 + Rnd() * 10).Interior.Color = couleur
    End With
    End If
End Sub
 

Louanis

XLDnaute Nouveau
Re : retourner le nom d'un shape sélectionné

Bonjour,:D
merci pour vos réponses;
Jean-Marcel, j'avais trouvé sur le forum cette fonction mais elle marche avec une msgbox me semble t il;
Modeste geedee, pareil, je ne veux pas de msgbox, mais j'ai quand même gardé tes lignes de code...merci
Pierrot93, merci beaucoup, simple efficace, c'est exactement ce que je cherchais.
Encore merci à vous 3.
 

Louanis

XLDnaute Nouveau
Re : retourner le nom d'un shape sélectionné

RE Bonjour,:confused:
Si je souhaite retourner la sélection de la feuille Carte (afin d’éviter de colorer des objets d'autres feuilles dans le cas ou l'utilisateur oubli de sélectionner un des objets de la feuille carte), du style:
dim s as string
s = Sheets("Carte").Selection.Name

mais malheureusement ça ne pas l'air aussi simple
merci d'avance
 

Pierrot93

XLDnaute Barbatruc
Re : retourner le nom d'un shape sélectionné

Bonjour,

comme dit l'aide vba (cf ci-dessous), la "selection" ne s'applique que sur la feuille active... il te faut au préalable selectionner la dite feuille...
Cette propriété renvoie l'objet sélectionné dans la fenêtre active pour un objet Application, et dans une fenêtre spécifiée pour un objet Windows.

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo