Soit un peu plus rigoureuse au niveau des noms d'onglet :
"Facture " avec une espace derrière
" Mars-2016" avec une espace devant
idem pour Février-2016
Ca ajoute des plantages, donc des traitements inutiles.
Sub dernierMois()
Dim wb As Workbook
Set wb = Workbooks.Add
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Copy Before:=wb.Sheets(1)
With ActiveSheet.UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
ThisWorkbook.Sheets("Facture ").Copy Before:=wb.Sheets(1)
With ActiveSheet.UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
ActiveSheet.Shapes.Range(Array("Button 1")).Delete
Application.DisplayAlerts = False
For i = 1 To 3
On Error Resume Next
Sheets("Feuil" & i).Delete
Next i
On Error GoTo 0
Application.DisplayAlerts = True
' enregistrer sous le nom du mois
wb.SaveAs Trim(ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name)
' fermeture
'wb.Close
End Sub