Bonjour,
La première chose à faire est d'éliminer les Select...
Sub duplic()
Dim x$
x = InputBox("Nom du nouveau salarié")
If x = "" Then MsgBox "Aucun salarié entré !": Exit Sub
Worksheets("modele").Copy After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = x
.Range("B4") = x
End With
With Worksheets("accueil").Range("A1").End(xlDown)(2)
.Value = x
.Worksheet.Activate
.Select
End With
End Sub
avec quelques petits aménagements de plus :
On laisse la feuille modele en l'état pour la suite (il sera d'ailleurs judicieux de la masquer, la rendre visible pour la copie et la remasquer ensuite...)
On la copie et on travaille sur la copie, devenue automatiquement la feuille active : on nomme, on affecte la valeur de B4.
On cible ensuite la première ligne vide de A dans accueil (sans l'activer ou la sélectionner) : on affecte le nom (à partir de la variable), on peut alors activer la feuille et sélectionner la cellule pour passer la main à l'utilisateur...
Autres conseils : ne pas multiplier les modules standard, un suffit amplement tant qu'on n'a pas de code dont la nature nécessite de ne pas le mélanger dans un même module que le reste, et indenter son code si l'on veut pouvoir travailler efficacement dessus.
Cordialement.