Good job !!
Option Explicit
Sub Copierenameworksheet11()
Dim wh As Worksheet, nomf As String, c As Range
Set wh = Sheets("recap")
nomf = wh.Range("b3").Value
wh.Copy after:=Worksheets(Sheets.Count)
If wh.Range("b3").Value <> "" Then
ActiveSheet.Name = nomf
For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
c.Copy
c.Select '<<----------------------------------------------------- What happens if you delete this line ?
Selection.PasteSpecial Paste:=xlPasteValues '<<------------------ Then change this line to :
'c.PasteSpecial Paste:=xlPasteValues
Next c
End If
wh.Activate
End Sub