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 Sub

Merci 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 Sub

Ici 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 Sub

Merci 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 Sub

Bonjour,

C'est parfait!

Merci beaucoup à tout les deux,

Bonne fin de semaine

Rechercher des sujets similaires à "ajouter bouton associe macro"