Guardar archivo excel con distinto nombre en vba

Tengo un codigo que me guarda mi archivo excel pero lo malo que cuando lo guardo y ya tengo un archivo con el mimso nombre lo guarda encima de ese archivo pero me gustaria que cuando guardo el archivo y detecta que existe el archivo con el mismo nombre genere otro aumentando al nombre el numero (1) y este esta el numero (2) y asi si es que ahy varias copias.

Sub GUARDAR()
    Set L1 = ActiveWorkbook
    Set h1 = L1.ActiveSheet
    ruta1 = "C:\Users\GUERRERO\Desktop\Archivos Excel\"
    h1.SaveAs ruta1 & h1.Name & "_Enero" & ".xlsm"
End Sub

Ejemplo

Archivo guardado Comidas_Enero

Si encuentra este nombre que lo guarde con Comidas_Enero(1)

Si este mismo ya esta que guarde con el siguiente Comidas_Enero(2)

Por lo general hasta 7 veces como máximo " Comidas_Enero(7) " guardo cada archivo realizando modificaciones en el excel alguna ayuda por favor para que no se me guarde encima del archivo cosa que me ocurre con frecuencia y pierdo la data anterior.

2 respuestas

Respuesta
1

[Hola nuevamente

Y en lugar de intentar hacerlo con macros, que no es tan simple ¿probaste usar una Plantilla de Excel habilitada para macros? Esas se auto numeran solas.

Abraham Valencia
https://abrahamexcel.blogspot.com/
Lima, Perú

PD: En las opciones de "Guardar cómo" la verás

Las plantillas con macros tiene la extensión .xltm verdad, pero cuando lo guardo no se auto enumera solo

Humm, bueno, en todo caso, y dado que es un tema ya tocado en internet, aquí te dejo una propuesta para que adaptes (no es mía); la conversación está en inglés, pero la UDF, y los comentarios con correcciones posteriores, dan en el clavo:

https://www.ozgrid.com/forum/forum/help-forums/excel-general/55154-macro-to-save-save-as-with-sequential-name?t=63824

Abraham Valencia
Lima, Perú

Respuesta
1

[Hola 

Va la macro 

Sub Guardar()
'
'Act. Adriel Ortiz
'fuente
'Por.Dante Amor
'https://www.todoexpertos.com/preguntas/8crco9s63v8yyo69/crear-copia-de-reporte-en-excel-vba
'
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    h1.Copy
    Set l2 = ActiveWorkbook
    '
    ruta = "C:\Users\GUERRERO\Desktop\"
    carpeta = "Archivos Excel"
    If Dir(ruta & carpeta, vbDirectory) = "" Then
        MkDir (ruta & carpeta)
    End If
    '
    arch = h1.Name
    n = 1
    Do While True
        If Dir(ruta & carpeta & "\" & arch & n & ".xlsm") = "" Then
            Exit Do
        End If
        n = n + 1
    Loop
    l2.SaveAs ruta & carpeta & "\" & arch & n & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
    CreateBackup:=False
    l2.Close False
    MsgBox "Hoja reporte guardada como archivo : " & arch & n & ".xlsm"
End Sub

valora la respuesta para finalizar!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas