Sub onglet()
Dim i%, j%, c As Range
On Error Resume Next
With Sheets("Facture")
If CStr(.[B12]) = "" Then Exit Sub
If IsError(Sheets(CStr(.[B12]))) Then
Application.ScreenUpdating = False
.Move Before:=Sheets(1) 'au cas où...
.Copy After:=Sheets(1)
With Sheets(2)
.Name = CStr(.[B12])
.OLEObjects.Delete 'supprime le bouton ActiveX
.Names("CopieFacture").Delete 'supprime le nom dans la feuille
.[D6] = .[D6] 'supprime la formule de la date
End With
'---classement des onglets---
For i = 2 To Sheets.Count
For j = i + 1 To Sheets.Count
If Sheets(j).Name < Sheets(i).Name Then Sheets(j).Move Before:=Sheets(i)
Next
Next
.Activate 'retour
Else
Set c = Sheets(CStr(.[B12])).Range("A" & Rows.Count).End(xlUp)(3)
.[CopieFacture].EntireRow.Copy c
c(6, 4) = c(6, 4) 'supprime la formule de la date
End If
End With
End Sub