Ajouter un bouton associé à une macro, par une macro
Bonjour,
Je ne sais pas si c'est possible (même si tout est possible presque avec excel!), mais en bref:
Je suis sur une feuille "Liste de nom", j'aimerais, à l'aide d'un bouton, ajouter un onglet à la fin de mon classeur, nommé grâce à une inputbox, jusqu'à là tout va bien, mais j'aimerais également créer, à la suite de ma liste de nom, un raccourci jusqu'à la feuille venant d'être créée.
Mon problème est donc de créer ce raccourci, j'ai essayé en vain de bidouiller avec l'enregistreur de macro, créer un bouton associé à une macro poserait problème au niveau du positionnement, un lien hypertexte associé peut-être, mais comment?
Enfin voilà je suis un peu perdue,
J'en suis à là :
Private Sub CommandButton1_Click()
Dim ouvrier As String
ouvrier = InputBox("Indiquez le nom de l'ouvrier que vous souhaitez ajouter", "ajouter un ouvrier")
Sheets.Add.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = ouvrier
End SubMerci par avance
Bonjour Chamouth,
Je suis nouveau dans le Forum mais j'ai un peu planché sur ton sujet.
Ta macro était en fait un très bon début! Essaie-voir ce code macro que tu pourras associer à un bouton de contrôle de formulaire. (Menu "Développeur" - Bouton "insérer")
Sub Add_person_sheet()
Dim ouvrier As String
ouvrier = InputBox("Indiquez le nom de l'ouvrier que vous souhaitez ajouter", "Ajouter un ouvrier")
Sheets.Add.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = ouvrier
Worksheets("Liste Noms").Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Durand!A1", TextToDisplay:=ouvrier
End SubIci le lien hypertexte se placera dans la cellule sélectionné de la feuille où se situe ta liste des Noms et que j'ai nommée ici "Liste noms".
Le code peut être amélioré en choisissant automatiquement le bon endroit pour insérer le lien.
Dans ce cas, il faudra remplacer "Selection" après "Anchor:=" par un commande du style Range ou Cells.
Voilà. Je ne sais pas si c'est exactement ce dont tu avais besoin. Mais je pourrai rectifier le tir si besoin!
Bonjour Adalric,
Merci beaucoup de t'être intéressé à mon problème!
Seul bémol, quand j'essaie d'utiliser le lien, j'ai un message d'erreur "référence non valide", j'ai essayé de modifier address:= pour que le lien mène sur la feuille tout juste créée mais j'ai un nouveau message d'erreur "impossible d'ouvrir le fichier spécifié"
Ci joint mon code:
Private Sub CommandButton1_Click()
Dim ouvrier As String
ouvrier = InputBox("Indiquez le nom de l'ouvrier que vous souhaitez ajouter", "ajouter un ouvrier")
Sheets.Add.Move After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = ouvrier
Sheets("Liste de noms").Rows("8:8").Select
Selection.Insert Shift:=xldow
Sheets("Liste de noms").Range("A8") = ouvrier
ActiveSheet.Range("A8").Font.Size = 14
Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlBottom
Selection.VerticalAlignment = xlCenter
Worksheets("Liste de noms").Hyperlinks.Add Anchor:=Sheets("Liste de noms").Range("A8"), Address:=sheets(ouvrier), SubAddress:= _
"ouvrier!A1", TextToDisplay:=ouvrier
Sheets(ouvrier).Activate
End SubMerci par avance
Bonjour,
A tester.
Tu dois penser à tester l'existence d'une feuille avant de la créer
Option Explicit
Private Sub CommandButton1_Click()
Dim Ws As Worksheet, _
newWs As Worksheet, _
ouvrier As String
ouvrier = InputBox("Indiquez le nom de l'ouvrier que vous souhaitez ajouter", _
"ajouter un ouvrier")
If ouvrier = "" Then Exit Sub
Application.ScreenUpdating = False
Set Ws = Worksheets("Liste de noms")
ActiveWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = ouvrier
Set newWs = ActiveSheet
Ws.Activate
Rows("8:8").Insert Shift:=xlDown
With [A8]
.Value = ouvrier
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
ActiveSheet.Hyperlinks.Add _
anchor:=[A8], _
Address:="", _
SubAddress:="'" & newWs.Name & "'" & "!A1", _
TextToDisplay:=ouvrier
newWs.Activate
Set Ws = Nothing: Set newWs = Nothing
End SubBonjour,
C'est parfait!
Merci beaucoup à tout les deux,
Bonne fin de semaine