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.
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
-
ContributeurBonjour,
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.-
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 -
Contributeur@volfossBonjour,
Tu enregistres ta macro et tu mets son nom 'EnregtistrerFichierBagues' dans la ligne 'OnAction' comme je te l'ai écrit
-