Macro renommer bouton avec nom variable

Résolu
Bonjour,
pour les besoins d'un programme j'ai créer un bouton qui lance une macro pour créer des autres boutons afin d'ouvrir différents fichiers.
1) J'aimerais renommer à partir d'une macro ce nouveau bouton en fonction d'une cellule dont le nom est variable (ce serait l'année) et qui est placé en I 31 ?
2) est- il possible de déterminer dans la macro l'emplacement du nouveau bouton créer (par exemple en E 30 ?
Merci pour votre aide.

1 réponse

  1. Contributeur
    Bonjour,

    Bienvenue sur le forum

    Tu peux le faire avec ce type de macro :
        ActiveSheet.Buttons.Add([E30].Left, [E30].Top, [E30].Width, [E30].Height).Select
        Selection.Characters.Text = [I31].Value
        Selection.OnAction = "Macro ?"
    En remplaçant "Macro ?" par ton nom de macro que tu veux lancer avec ton bouton.
    1. Merci ta macro fonctionne parfaitement. Mon soucis est que je dois affecter par la suite la macro à exécuter par le bouton crée car je fait plusieurs actions en même temps que sa création.
      Je voudrais que le bouton fasse :
      Sheets("2017").Visible = True
      Sheets("2017").Select
      Range("B2:F2").Select
      Est-ce réalisable en une seul macro ?

      Mon code actuel :

      Sub EnregtistrerFichierBagues()

      Sheets("Bagues").Visible = True
      Sheets("Bagues").Select
      ActiveSheet.Buttons.Add([E10].Left, [E10].Top, [E10].Width, [E10].Height).Select
      Selection.ShapeRange.LockAspectRatio = msoFalse
      Selection.ShapeRange.Height = 28.5
      Selection.ShapeRange.Width = 57#
      Selection.Characters.Text = [I31].Value
      Selection.OnAction = "'Gestion élevage.xls'!Bagues2017"

      J'aimerais réaliser ici la macro lancer par le nouveau bouton (bagues2017) créer juste au-dessus.

      Sheets("2017").Visible = True
      Sheets("2017").Select
      Range("B2:F2").Select

      Sheets("Création bagues").Visible = True
      Sheets("Création bagues").Select

      ' copie et renomme l'onglet avec l'année d'élevage

      Sheets("Création bagues").Copy After:=Worksheets(Worksheets.Count)
      ActiveSheet.Name = Sheets("Création bagues").Range("B2")
      ActiveSheet.Visible = True

      Sheets("Création bagues").Visible = False
      Sheets("2017").Visible = False

      End Sub
    2. Contributeur
      @volfossBonjour,

      Tu enregistres ta macro et tu mets son nom 'EnregtistrerFichierBagues' dans la ligne 'OnAction' comme je te l'ai écrit