Stocker le nom d'un Shape pour le supprimer plus tard

  • Initiateur de la discussion Initiateur de la discussion cabsen
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cabsen

XLDnaute Junior
Bonjour à tous,

Pour une petite application, j'ai besoin de créer / supprimer un bouton.

Je parviens à :
  • Créer le bouton
  • Modifier son texte en fonction de mes besoins
  • Positionner le bouton où je le souhaite

Je ne parviens pas à :
  • Stocker son nom de type "Button 000" dans une variable

Quelqu'un saurait-il m'indiquer comment récupérer et stocker ce nom incrémentiel affecté par Excel lors de la création du bouton dans le but de pouvoir détruire ce bouton et pas un autre un peu plus tard dans le programme ?

D'avance merci.
 
Re : Stocker le nom d'un Shape pour le supprimer plus tard

Le soucis est que je souhaite le faire par Macro et que le renommage nécessite de connaître au préalable le nom Excel de l'objet :

ActiveSheet.Shapes("Button 123").Name = "MEFapprenti"

Et je ne connais pas le numéro de l'objet qui évolue constamment au fur et à mesure de l'utilisation de mon application
 
Re : Stocker le nom d'un Shape pour le supprimer plus tard

Bonjour cabsen

Hello Hasco 🙂🙂

une fonction personnalisée pour avoir le dernier bouton construit dans une feuille

Code:
Function dernier_bouton_construit(nomfeuille)
For n = Sheets(nomfeuille).Shapes.Count To 1 Step -1
  If InStr(Sheets("Feuil1").Shapes(n).Name, "Button") <> 0 Then
    dernier_bouton_construit = Sheets("Feuil1").Shapes(n).Name
    Exit For
  End If
Next n
End Function
 
Re : Stocker le nom d'un Shape pour le supprimer plus tard

Re,

hello Pierre-Jean🙂

Si tu crées tes boutons pas macro, à un moment donné tu as forcément une ligne
Shapes.add etc.....

Tu peux faire
Dim shp as Shape
Set shp = ActiveSheet.Shapes.Add(....,.....)
shp.Name ="LeJouliBouton"

Tout ceci n'est que pure théorie tant qu'on aura pas un fichier exemple avec la macro.🙂

A+
 
Re : Stocker le nom d'un Shape pour le supprimer plus tard

Merci à vous deux,

J'ai utilisé la fonction de pierrejean pour obtenir :

Code:
Sub Macro4()

Dim n As Integer
Dim nombouton As String

    ActiveSheet.Buttons.Add(140, 196, 84, 14).Select
    
    For n = ActiveSheet.Shapes.Count To 1 Step -1
    MsgBox n
        If InStr(Sheets("accueil").Shapes(n).Name, "Button") <> 0 Then
            nombouton = Sheets("accueil").Shapes(n).Name
           Exit For
        End If
    Next n
    
    ActiveSheet.Shapes(nombouton).Name = "MEFapprenti"
    Selection.OnAction = "effacerPlages"
    Selection.Characters.Text = "Apprentis"

End Sub

Auparavant, j'avais ceci en nommant le Shape manuellement avec l'enregistreur de Macro :

Code:
Sub Macro4()

    ActiveSheet.Buttons.Add(140, 196, 84, 14).Select
    ActiveSheet.Shapes("MEFapprenti").Name = "MEFapprenti"
    Selection.OnAction = "effacerPlages"
    Selection.Characters.Text = "Apprentis"

End Sub

Merci donc à tous les deux !
 
Re : Stocker le nom d'un Shape pour le supprimer plus tard

Re

En reprenant le #5 de mon ami Hasco 🙂 🙂 on obtient plus simple:

Code:
    ActiveSheet.Buttons.Add(140, 196, 84, 14).Select
    Selection.Name = "MEFapprenti"
    Selection.OnAction = "effacerPlages"
    Selection.Characters.Text = "Apprentis"
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
17
Affichages
3 K
Ananas94
A
R
  • Question Question
Réponses
0
Affichages
2 K
Raphy3034
R
R
Réponses
3
Affichages
5 K
P
Réponses
12
Affichages
2 K
Pauliakov
P
Retour