Je tente de copier un classeur Excel du dossier X vers le dossier Y, et dans le cas où un fichier de ce nom existe déjà dans le dossier Y, le fichier n'est pas écrasé mais plutôt le nouveau fichier est donné un suffixe de '- Copy', '- Copy (2)' etc - essentiellement recréer le processus manuel pour copier et coller le même fichier dans un dossier.Enregistrement d'une copie d'un classeur Excel existant sans l'écraser
J'aurais pensé qu'il y aurait une fonction qui vous permet de le faire, mais rien que j'ai essayé semble à ce jour pour répondre aux exigences exactes:
Workbook.SaveAs
invite l'utilisateur avec un message demandant si le fichier doit être remplacéWorkbook.SaveCopyAs
simplement le fichier écrase sans une invitela méthode
FileSystemObject.CopyFile
a un par « écraser » AMETER, mais cela simplement des erreurs si la valeur false et le fichier existe déjà, ce qui est un comportement attendu selon le Microsoft website
Il ne serait pas difficile de créer un compteur qui incrémente en fonction du nombre de fichiers 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 celle-ci.
Allez-y avec votre instinct ici. IMO la meilleure solution est d'avoir votre propre compteur ici et de changer les fichiers de noms. (Je ne sais pas s'il y a une fonction vba pour ce "job" et pour être honnête je serais surpris s'il en existe un) – Blenikos
Utilisez la méthode 'FileSystemObject'' File.Exists', puis utilisez 'regex' ou' mid '/' instr' pour obtenir le (x) numéro s'il y en a un et incrément. –