Sub PlageDonnees()
Dim S As Worksheet
Dim R As Range
Dim LastRow&
Dim LastCol&
'--- Détermine la plage de données ---
Set S = ActiveSheet
Set R = S.Cells(S.Rows.Count, S.Columns.Count)
On Error Resume Next
LastRow& = S.Cells.Find(What:="?", After:=R, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol& = S.Cells.Find(What:="?", After:=R, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
If Err <> 0 Then Exit Sub
On Error GoTo 0
Set R = S.Range(S.Cells(1, 1), S.Cells(LastRow&, LastCol&))
R.Copy
'--- Copie la plage de données dans une nouvelle feuille ---
Set S = Sheets.Add
S.Paste
Application.CutCopyMode = False
End Sub