With newWbk
.Sheets(1).Range("A1").Select
.SaveAs chemin
.Close False
End With
je suppose que ton code est placé dans un module de feuille, et cette même feuille n'est pas la feuille active quand cette ligne est lancée. Il est donc nécessaire de selectionner le classeur / la feuille en question au préalable.... sinon on peut également procéder ainsi :
Private Sub CommandButton1_Click()
Dim tWBK As Workbook: Set tWBK = ThisWorkbook
Dim newWbk As Workbook, r$, d$, chemin$
r = "C:\Temp\": d = Format(Date, "dd-mm-yyyy")
With tWBK
Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
.Sheets(1).Copy After:=newWbk.Sheets(1)
End With
With newWbk
With .Sheets(2).UsedRange
.Value = .Value
End With
.Sheets(2).OLEObjects(1).Delete
chemin = r & .Sheets(2).Range("i3").Text & d & ".xls"
Application.DisplayAlerts = False
.Sheets(1).Delete
.SaveAs chemin
.Close False
End With
End Sub
Sub Macro1_dans_module()
Dim tWBK As Workbook: Set tWBK = ThisWorkbook
Dim newWbk As Workbook, r$, d$, chemin$
r = "C:\Temp\": d = Format(Date, "dd-mm-yyyy")
With tWBK
Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
.Sheets(1).Copy After:=newWbk.Sheets(1)
End With
With newWbk
With .Sheets(2).UsedRange
.Value = .Value
End With
[COLOR=Green] '.Sheets(2).OLEObjects(1).Delete
' dans ce cas inutile car il n'y aura pas de CommandButton sur la feuille source[/COLOR]
chemin = r & .Sheets(2).Range("i3").Text & d & ".xls"
Application.DisplayAlerts = False
.Sheets(1).Delete
.SaveAs chemin
.Close False
End With
End Sub