Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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,
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,
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
@+
 

Louanis

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

Merci pour ta réponse,
du coup je pense que vais créer une liste d'objet a sélectionner, et la macro ira vérifier que l'objet fait bien partie de la liste.
A+ et encore merci.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…