Macro que guarda en otro archivo, aunque cambie el nombre del primero.

Buenas!

Mi problema creo que es sencillo para ustedes, pero no lo he podido resolver.

Resulta que tengo una macro sencilla que básicamente lo que hace, es copiar una hoja activa a otro archivo. Pero resulta que eventualmente cambiamos el nombre del archivo y ahí deja de funcionar mi fórmula por lo que tengo que entrar al programador para hacerlo también allí. ¿hay una forma de que me tome del nombre del archivo activo y no tener que modificar la macro cada que lo cambie?

La siguiente es la macro, de antemano muchas gracias!!!:

Sub GUARDAR()


NOMBRE = Sheets("Ppto Clientes").Range("d13").Text
OPCIÓN = Sheets("Ppto Clientes").Range("d13").Text & Sheets("Ppto Clientes").Range("D16").Text
'Condición de tener las celdas con datos para poder ejecutar
If Range("D16") = "V" And Range("K111") <> "" Then
Sheets("Ppto Clientes").Select: ActiveWorkbook.Unprotect
Workbooks.Open ThisWorkbook.Path & "\Resumen Plantillas Acabados T4.xls"
Windows("2013 08 08 Plantilla Acabados Clientes T4.xls").Activate: Range("D13").Select
Sheets("Ppto Clientes").Select: Sheets("Ppto Clientes").Copy Before:=Sheets(1)
Sheets("Ppto Clientes (2)").Select: Sheets("Ppto Clientes (2)").Name = OPCIÓN
Range("D13").Select: Sheets(OPCIÓN).Select
Sheets(OPCIÓN).Activate: Sheets(OPCIÓN).Unprotect
Cells.Select: Selection.Copy: Cells.Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("D11").Select: Sheets(OPCIÓN).Protect
Sheets(OPCIÓN).Move After:=Workbooks("Resumen Plantillas Acabados T4.xls").Sheets(1)
ActiveWorkbook.Sabe: ActiveWindow.Close
Sheets("Ppto Clientes").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False
Else
MsgBox ("LA ALTERNATIVA DEBE SER V Y DEBES HABER INGRESADO EL NOMBRE DE ASESOR!!!")
End If
End Sub

1 Respuesta

Respuesta
1

Leyendo tu consulta y sin ponerme a evaluar el código, respondo a la pregunta:

¿Hay una forma de que me tome del nombre del archivo activo?

La respuesta es si, colocando el nombre en una variable.

Por ej, veo que luego de abrir un 2do libro, activas otro llamado '... Plantilla Acabados...

Entonces la secuencia sería así:

Sub GUARDAR()

libro1 = ActiveWorkBook.name

Luego de la línea del Open, para regresar a este libro sería:

Workbooks(libro1). Activate

ActiveWorkbook.Sheets(la que sea).select

Y luego sigue la selección del rango, etc.

Es decir, que ahora ya nunca mencionarás el nombre del libro, sino la variable definida al inicio.

Sdos y si todo quedó claro no olvides finalizar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas