Ruta para crear y eliminar copias de archivos

Hola Fernando! Tiempos sin molestarte
Tengo un problemilla, tengo una macro que me crea la copia de un archivo y me lo guarda en una carpeta determinada en la macro (siempre la misma), dependiendo de un número me crea un archivo con un nombre determinado, el problema, es, como hacer para que el archivo sea guardado en la carpeta en la que esta ubicado el archivo que se esta copiando, Teniendo en cuenta que puede haber varias copias del "archivo madre" en distintas carpetas, que cuando active cada archivo (igual pero con distintos nombres) sus copias respectivas vayan a las carpetas que les corresponden, no a la misma.
Ahí te mando lo que he hecho, igual lo necesito para eliminarlos, te mando las dos macros, ojalá me entiendas lo que quiero.
Sub ESCENARIOS()
Sheets("ESCENARIOS").Unprotect
Rows("4:5").Select
Selection.EntireRow.Hidden = False
If Range("e13") = 2 Then ActiveWorkbook.SaveCopyAs Filename:="C:\ABC\modelo 2.xls" Else: If Range("e13") = 3 Then ActiveWorkbook.SaveCopyAs Filename:="C:\ABC\modelo 3.xls" Else: If Range("e13") = 4 Then ActiveWorkbook.SaveCopyAs Filename:="C:\ABC\modelo 4.xls" Else: If Range("e13") = 5 Then ActiveWorkbook.SaveCopyAs Filename:="C:\ABC\modelo 5.xls" Else: End
Sheets("ESCENARIOS").Protect "abc"
MsgBox "Recuerde verificar la creación del Modelo en la Carpeta ABC", vbExclamation, "ARCHIVOS COPIADOS"
End Sub
La otra tiene lo mismo pero para eliminar, así:
If Range("e19") = 2 Then Kill "C:\ABC\modelo 2.xls" Else......
Muchas gracias!

1 Respuesta

Respuesta
1
Veamos si entendí tu planteo.
Abres un archivo desde una carpeta determinada y, según el valor de una celda (E13), le asigna un nombre distinto pero lo graba en la misma carpeta. ¿OK?
Pues yo lo haría así:
Sub ESCENARIOS()
Sheets("ESCENARIOS").Unprotect
Rows("4:5").Select
Selection.EntireRow.Hidden = False
' cambié todo desde aquí...
Nombrearchivo = "modelo " & Trim(Range("E13").Value)
Nombrearchivo = ActiveWorkbook.Path & "\" & Nombrearchivo
ActiveWorkbook.SaveCopyAs FileName:=Nombrearchivo
'...hasta aquí
Sheets("ESCENARIOS").Protect "abc"
MsgBox "Recuerde verificar la creación del Modelo en la Carpeta ABC", vbExclamation, "ARCHIVOS COPIADOS"
End Sub
El truco está en usar
ActiveWorkbook. Path
La secuela de If... Else la cambié por el uso del número en la celda E13 concatenado con la palabra "modelo "
Desde luego, aceptará cualquier valor que haya en tal celda.
Espero haberte interpretado y que esto te sirva.
Un abrazo!
Fernando
Mi hermano, sos un genio, eso funciona de maravilla, TREMENDA, ahora, ¿cómo puedo usarla para eliminar? Aquí tengo la miserable macro que hice ojalá me entiendas
Sub CHAOESCENARIOS()
Sheets("ESCENARIOS").Unprotect
Rows("4:5").Select
Selection.EntireRow.Hidden = False
If Range("e19") = 2 Then Kill "C:\ABC\modelo 2.xls" Else: If Range("e19") = 3 Then Kill "C:\ABC\modelo 3.xls" Else: 'ETC,ETC
Sheets("ESCENARIOS").Protect "ABC"
MsgBox "Recuerde verificar la eliminación del Modelo en la Carpeta ", vbExclamation, "Modelo Financiero 2003"
End Sub
Óyeme Fernando, no hay necesidad que te desgastes con mis problemas, por fin use el cerebro y ya la diseñé para eliminar, nuevamente mil gracias, como siempre, excelente! Me dejas sin palabras y preocupado por mi ignorancia
Mucha Suerte!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas