Este post foi originalmente publicado em https://officevbavsto.blogspot.com/2011/03/quickshot-copiando-um-arquivo-se-o.html.

Hoje, compartilharei um código VBA que lhe permitirá copiar um arquivo e sobrescrevê-lo se o mesmo já existir.

Suponha que tenhamos uma rotina, onde devemos verificar se um determinado arquivo existe, e caso positivo, realizamos uma cópia desse arquivo para outro destino, seja ele local ou na rede.

Com o código abaixo podemos realizar esse procedimento.

Sub CopiarArquivo()

  Dim fso
  Dim arquivo As String, origem As String, destino As String
  
  arquivo= "teste.xls" ' nome do arquivo que deseja copiar
  origem = "C:\" ' mude para adequar a sua pasta de origem
  destino = "D:\" ' mude para adequar a sua pasta de destino
  
  Set fso = CreateObject("Scripting.FileSystemObject")
  
  If Not fso.FileExists(origem & arquivo ) Then
    'Caso não exista o código que você pretende copiar aparecera uma mensagem informando.
    MsgBox origem & arquivo & " Não Existe!", vbExclamation, "Office, VBA e VSTO"
  ElseIf Not fso.FileExists(destino & arquivo) Then
    'Nesse caso, caso não exista o arquivo que você pretende copiar na pasta de "DESTINO" o mesmo copia o arquivo
    fso.CopyFile (origem & arquivo), destino , True
  Else
    'Caso o arquivo já exista na pasta de "DESTINO", uma mensagem informando que o arquivo já existe irá aparecer.
    MsgBox destino & arquivo& " já existe!", vbExclamation, "Office, VBA e VSTO"
  End If

End Sub

Créditos

Photo by Laika Notebooks on Unsplash