Excel & VB - Récupérer le nom objet cliqué
Fermé
ridertart
Messages postés
14
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
21 février 2008
-
18 févr. 2008 à 11:39
OBO29 - 30 oct. 2017 à 22:02
OBO29 - 30 oct. 2017 à 22:02
A voir également:
- Excel & VB - Récupérer le nom objet cliqué
- Liste déroulante excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Si et excel - Guide
- Comment récupérer un compte facebook piraté - Guide
4 réponses
Essaye cela :
Sub ShapeClick()
Dim NomShape As String
NomShape = Application.Caller
Msgbox NomShape
End Sub
Tu affectes la macro aux objets désirés
Merci à ChrisKang dans une autre discussion !
Sub ShapeClick()
Dim NomShape As String
NomShape = Application.Caller
Msgbox NomShape
End Sub
Tu affectes la macro aux objets désirés
Merci à ChrisKang dans une autre discussion !
Bonjour,
Je vois que tu es toujours en galère avec tes rectangles colorés.
Comme on te l'as déjà dit, il suffit quelque fois d'enregistrer une macro pour que la lumière soit.
Je vais t'expliquer comment je procède.
Par exemple, je dessine un rectangle "Rectangle 1", puis j'enregitre une macro "Macro1" (Menu Outils Macro Nouvelle Macro)
Clic droit sur le rectangle, Format de la forme automatique...
Je change la couleur du fond, la bordure...Je ferme la boite de dialogue.
J'arrete l'enregistrement de Macro1, Editeur Visual Basic, Module1 (ou Module2...),et je recupère le code
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 18/02/2008
'
'
ActiveSheet.Shapes("Rectangle1").Select
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 11
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
End Sub
C'est pas bien compliqué. Maintemant je veux afficher certaines propriété de ce rectangle quand je clic dessus.
Je crée une macro qui s'appelle Rectangle1_QuandClic(), atention à l'orthographe, le nom est important car il fait référence à un évènement prédéfini.
Sub Rectangle1_QuandClic()
'pour repondre à ta question j'affiche le nom
'mais je ne vois pas trop l'interet de connaitre le nom de l'obet
MsgBox ActiveSheet.Shapes("Rectangle 1").Name
'Accessoirement voici la couleur de l'objet
ActiveSheet.Shapes("Rectangle 1").Select
MsgBox Selection.ShapeRange.Fill.ForeColor.SchemeColor
End Sub
Je vais dans ma feille excel, clic droit sur rectangle1, Affecter une macro -> Rectangle1_QuandClic()
C'est terminé. Quand je passe sur le rectangle, le curseur change. Je clic dessus et les messages programmés s'affichent.
J'espère que ça t'avencera un peu. Salut.
Je vois que tu es toujours en galère avec tes rectangles colorés.
Comme on te l'as déjà dit, il suffit quelque fois d'enregistrer une macro pour que la lumière soit.
Je vais t'expliquer comment je procède.
Par exemple, je dessine un rectangle "Rectangle 1", puis j'enregitre une macro "Macro1" (Menu Outils Macro Nouvelle Macro)
Clic droit sur le rectangle, Format de la forme automatique...
Je change la couleur du fond, la bordure...Je ferme la boite de dialogue.
J'arrete l'enregistrement de Macro1, Editeur Visual Basic, Module1 (ou Module2...),et je recupère le code
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 18/02/2008
'
'
ActiveSheet.Shapes("Rectangle1").Select
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 11
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
End Sub
C'est pas bien compliqué. Maintemant je veux afficher certaines propriété de ce rectangle quand je clic dessus.
Je crée une macro qui s'appelle Rectangle1_QuandClic(), atention à l'orthographe, le nom est important car il fait référence à un évènement prédéfini.
Sub Rectangle1_QuandClic()
'pour repondre à ta question j'affiche le nom
'mais je ne vois pas trop l'interet de connaitre le nom de l'obet
MsgBox ActiveSheet.Shapes("Rectangle 1").Name
'Accessoirement voici la couleur de l'objet
ActiveSheet.Shapes("Rectangle 1").Select
MsgBox Selection.ShapeRange.Fill.ForeColor.SchemeColor
End Sub
Je vais dans ma feille excel, clic droit sur rectangle1, Affecter une macro -> Rectangle1_QuandClic()
C'est terminé. Quand je passe sur le rectangle, le curseur change. Je clic dessus et les messages programmés s'affichent.
J'espère que ça t'avencera un peu. Salut.
ridertart
Messages postés
14
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
21 février 2008
17
21 févr. 2008 à 10:16
21 févr. 2008 à 10:16
Oui merci pour ton aide !
Le problème c'est que j'ai bien compris la procédure d'enregistyrement de macro pour récupérer tous les paramètres de mon rectangle.
En fait j'ai une 30 aine de rectangle chacun avec une couleur et motifs différents.
J'ai une macro assigné pour tous les rectangles (1 à 30).
Et je voudrais que cette macro récupere les paramètres du rectangle cliqué pour les transférer vers un autre rectangle que j'aurais dessiné préalablement (et qui est blanc à l'origine).
Ceci pourra éviter de faire une macro pour chaque rectangle de couleur et de motif spécifique ... : (on évite tout ca :)
Sub Rectangle1_QuandClic()
...
End Sub
Sub Rectangle2_QuandClic()
...
End Sub
...
...
...
Sub Rectangle29_QuandClic()
...
End Sub
Sub Rectangle30_QuandClic()
...
End Sub
Comme ca je n'ai qu'une macro qui récupere le nom du rectangle cliqué qui récupere la couleur et le motif de ce rectangle et qui permet de colorier un autre rectangle grace à ces paramètres récupérés ...
Ca doit pas être bien compliqué pourtant ??? Mais trop pour moi pour l'instant.
Merci à tous et surtout à Amigo :)
Le problème c'est que j'ai bien compris la procédure d'enregistyrement de macro pour récupérer tous les paramètres de mon rectangle.
En fait j'ai une 30 aine de rectangle chacun avec une couleur et motifs différents.
J'ai une macro assigné pour tous les rectangles (1 à 30).
Et je voudrais que cette macro récupere les paramètres du rectangle cliqué pour les transférer vers un autre rectangle que j'aurais dessiné préalablement (et qui est blanc à l'origine).
Ceci pourra éviter de faire une macro pour chaque rectangle de couleur et de motif spécifique ... : (on évite tout ca :)
Sub Rectangle1_QuandClic()
...
End Sub
Sub Rectangle2_QuandClic()
...
End Sub
...
...
...
Sub Rectangle29_QuandClic()
...
End Sub
Sub Rectangle30_QuandClic()
...
End Sub
Comme ca je n'ai qu'une macro qui récupere le nom du rectangle cliqué qui récupere la couleur et le motif de ce rectangle et qui permet de colorier un autre rectangle grace à ces paramètres récupérés ...
Ca doit pas être bien compliqué pourtant ??? Mais trop pour moi pour l'instant.
Merci à tous et surtout à Amigo :)
26 nov. 2009 à 12:48
1 juil. 2012 à 11:41
13 oct. 2015 à 08:58
Ahkrane
30 oct. 2017 à 22:02