Guardar hoja excel en txt con nombre repetido

Hola, tengo una macro que guarda el área de una hoja en formato txt en una carpeta especifica del sistema llamada "ARCHIVO", este archivo txt lleva el nombre de una celda (B1), pero no sé como hacer para que en el caso que el nombre con que se va a guardar el archivo ya exista en la carpeta, no lo reescriba, sino que lo guarde con el mismo nombre seguido de un numero (por ejemplo - 1 ). La macro es la siguiente:

Sub ImprimirTXT

Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Sheets("Hoja1").Select
If Range("B1") = "" Then Exit Sub
n = Range("B1")
Range("B2:N50").Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\ARCHIVO\" & n & ".txt", _
FileFormat:=xlTextMSDOS, CreateBackup:=False
ActiveWorkbook.Close False
End Sub

Gracias a quien pueda ayudarme.

1 respuesta

Respuesta
1

Te anexo la macro, revisa si ya existe el archivo, si ya existe entonces intenta grabar el archivo -1, si ya existe, entonces intenta grabar el archivo - 2, si ya existe entonces, el 3, y así hasta encontrar un número que no exista.

Sub ImprimirTXT()
'Mod.Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    On Error Resume Next
    Sheets("Hoja1").Select
    If Range("B1") = "" Then Exit Sub
    n = Range("B1")
    m = 1
    Range("B2:N50").Copy
    Workbooks.Add
    ActiveSheet.Paste
    archivo = ThisWorkbook.Path & "\ARCHIVO\" & n & ".txt"
    Do While True
        If Dir(archivo) <> "" Then
            archivo = ThisWorkbook.Path & "\ARCHIVO\" & n & "-" & m & ".txt"
            m = m + 1
        Else
            Exit Do
        End If
    Loop
    ActiveWorkbook.SaveAs _
        Filename:=archivo, _
        FileFormat:=xlTextMSDOS, CreateBackup:=False
    ActiveWorkbook.Close False
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas