Enregistrement d'une copy d'un classur Excel existant sans l'écraser

J'essaie de copyr un classur Excel depuis le dossier X vers le dossier Y et, dans le cas où un file de ce nom existe déjà dans le dossier Y, le file n'est pas écrasé, mais le nouveau file reçoit un suffixe de '- Copier' , '- Copier (2)', etc. – essentiellement en recréant le process manuel pour copyr et coller le même file dans un dossier.

J'aurais pensé qu'il y aurait une fonction qui vous permettra de faire cela, mais rien que j'ai essayé jusqu'ici semble répondre aux exigences exactes:

Il ne serait pas difficile de créer un countur qui augmente en fonction du nombre de files existants dans le dossier sélectionné (.xls (1), .xls (2) etc.), mais j'espérais qu'il pourrait y avoir une approche plus directe que ce.

Quelque chose comme ça peut-être? vous devrez mettre un wrapper autour de celui-ci, en montrant le file save comme boîte de dialog, puis exécutez-le sur le path de file sélectionné.

 Public Function CUSTOM_SAVECOPYAS(strFilePath As Ssortingng) Dim FSO As Scripting.FileSystemObject Dim fl As Scripting.File Dim intCounter As Integer Dim blnNotFound As Boolean Dim arrSplit As Variant Dim strNewFileName As Ssortingng Dim strFileName As Ssortingng Dim strFileNameNoExt As Ssortingng Dim strExtension As Ssortingng arrSplit = Split(strFilePath, "\") strFileName = arrSplit(UBound(arrSplit)) strFileNameNoExt = Split(strFileName, ".")(0) strExtension = Split(strFileName, ".")(1) Set FSO = New Scripting.FileSystemObject intCounter = 1 If FSO.FileExists(strFilePath) Then Set fl = FSO.GetFile(strFilePath) strNewFileName = fl.Path & "\" & strFileNameNoExt & " (" & intCounter & ")." & strExtension Do blnNotFound = Not FSO.FileExists(strNewFileName) If Not blnNotFound Then intCounter = intCounter + 1 Loop Until blnNotFound Else strNewFileName = strFilePath End If ThisWorkbook.SaveCopyAs strNewFileName set fso=nothing set fl =nothing End Function