Sub copieSheet() Dim NomClasseur As String NomClasseur = "sauvegardevitrage.xls" Dim Chemin As String Chemin = ThisWorkbook.Path & "" Application.DisplayAlerts = False Set fs = CreateObject("Scripting.FileSystemObject") If Not fs.FileExists(Chemin & NomClasseur) Then Workbooks.Add ActiveWorkbook.SaveAs Chemin & NomClasseur Else MsgBox ("Ce classeur existe déjà") Exit Sub End If Debug.Print ThisWorkbook.Name ThisWorkbook.Activate If FExist("liste") Then ThisWorkbook.Worksheets("liste").Copy after:=Workbooks("sauvegardevitrage.xls").Sheets(xlLast) ThisWorkbook.Worksheets("liste").Delete 'on vérifie que la feuille est bien copiée Workbooks(NomClasseur).Activate If Not FExist("liste") Then MsgBox ("La copie ne s'est pas faite") Else Debug.Print "COPIE >> OK" End If Workbooks(NomClasseur).Close savechanges:=True Else MsgBox ("Feuille inexistante") End If Application.DisplayAlerts = True End Sub Function FExist(NomF As String) As Boolean ' test si la feuille existe Application.ScreenUpdating = False On Error Resume Next FExist = Not Sheets(NomF) Is Nothing Application.ScreenUpdating = True End Function
Sub test() chemin = ActiveWorkbook.Path Workbooks.Add Application.DisplayAlerts = False ActiveWorkbook.SaveAs chemin & "\sauvegardevitrage.xls" ThisWorkbook.Worksheets("Liste").Copy after:=Workbooks("sauvegardevitrage.xls").Sheets(xlLast) ' ThisWorkbook.Worksheets("liste").Delete Workbooks("sauvegardevitrage.xls").Close savechanges:=True Application.DisplayAlerts = True End Sub
oui j'ai le message d'erreur suivant : "Argument ou appel de procédure incorrect"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question'exemple: Workbooks("Classeur2").Worksheets("zzzz").Copy after:=ThisWorkbook.Worksheets(1)
Enfin quand vous entendez protéger, vous voulez dire dans le menu outils/ protéger le classeur c'est ca ?
le classeur sauvegardevitrage est créé deux lignes de code plus haut
chemin = ActiveWorkbook.Path Workbooks.Add Application.DisplayAlerts = False ActiveWorkbook.SaveAs chemin & "\sauvegardevitrage.xls" ThisWorkbook.Worksheets("liste").Copy after:=Workbooks("sauvegardevitrage.xls").Sheets(xlLast) ThisWorkbook.Worksheets("liste").Delete Workbooks("sauvegardevitrage.xls").Close savechanges:=True Application.DisplayAlerts = True