Comprobar archivo si existe y guardar con otro nombre VBA

Quisiera saber si me pueden ayudar ya que tengo un problema. Tengo una macro que me genera una serie de reportes y los exporta. Funciona bien, pero el problema se presenta que sobreescribe los archivos. Intente que el nombre contenga la fecha, pero a veces también se sobreescriben porque la macro que exporta la utilizo varias veces al día, así que eso ya dejo de ser una solución.

Tengo el siguiente código:

Sub abrir_fichero_si_existe()
Dim Archivo As String
    ChDrive ThisWorkbook.Path
    ChDir ThisWorkbook.Path
Archivo = "prueba.xlsx"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(Archivo) Then
    MsgBox "existe"
Else
    Nombre = "prueba.xlsx"
    ActiveWorkbook.SaveAs Filename:=Nombre
End If
End Sub

Lo que quisiera es que donde esta el mensaje "existe" insertar una macro que haga lo mismo que los navegadores cuando descargas un archivo y existe, que pone el nombre del archivo y le agregan un numero.

Ej: corro la macro y me genera el primer archivo: prueba.xlsx, vuelvo a correr la macro y al comprobar que existe "prueba.xlsx" me genera un archivo llamado "prueba1.xlsx" y si vuelvo a correr la macro me genere el archivo llamado "prueba2.xlsx".

1 Respuesta

Respuesta
1

H o l a :

Si estás guardando el archivo que tiene la macro entonces la extensión debe ser "xlsm", pero si es otro archivo entonces es "xlsx", te dejo la maro con "xlsm" y revisa si es lo que necesitas, de lo contrario, cambia a "xlsx"; la idea es cerar el archivo prueba1, si ya existes entonces la macro crea el prueba2, y así sucesivamente.

Sub abrir_fichero_si_existe()
'Act.Po.Dante Amor
    Dim Archivo As String
    ChDrive ThisWorkbook.Path
    ChDir ThisWorkbook.Path
    n = 1
    Set fso = CreateObject("Scripting.FileSystemObject")
    Do While True
        Archivo = "prueba" & n & ".xlsm"
        If Not fso.FileExists(Archivo) Then
            Exit Do
        Else
            n = n + 1
        End If
    Loop
    ActiveWorkbook.SaveAs Filename:=Archivo
    MsgBox "Archivo creado: " & Archivo
End Sub

Estimado Dante, funciona genial tu código. Muchísimas gracias por tantas ayudas que das a todas las personas en el foro.

Feliz Año Nuevo!

Abrazo Enorme!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas