Hoja guardada modifica el folio

Hola a todos, tengo una hoja llamada "CREMACION" que utilizo para elaborar presupuestos. Le puse una macro para que al abrir aumente en 1 el folio y no estarlo cambiando porque luego se me olvida. También puse una macro para que al cerrarla la guardara con el nombre "presupuesto" y el numero del folio con que se creó, como un respaldo para consultar presupuestos anteriores.
Las macros son las sig:
Private Sub Workbook_open()
'al abrir el libro incrementa una celda
Sheets("CREMACION").Range("L2").Value = Sheets("CREMACION").Range("L2").Value + 1
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim nbre As String
nbre = "presupuesto" & Sheets("CREMACION").Range("L2").Value
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & nbre & ".xls"
End Sub
Mi problema es que al abrir alguna de las hojas "presupuesto" para consultar algún dato anterior, me aumenta el folio lo que provoca que al abrir la hoja "CREMACION" ya no sea el consecutivo correcto. ¿Es posible que al abrir la hoja presupuesto solo la abra pero que no la incremente? Necesito que solo se incremente en la hoja "CREMACION" que es la que se utiliza para elaborar los presupuestos y que el archivo "presupuesto" se abra para consultar pero sin que aumente el folio.
Espero haber sido claro y me puedan ayudar.
Saludos cordiales

1 respuesta

Respuesta
1
Podemos controlar el nombre del libro al momento de abrirlo.
Como desconozco cual es el nombre del libro principal, mejor me lo aclaras para darte las instrucciones precisas.
Hola, gracias por responder.
El libro se llama "PRESUPUESTO FSJ", la hoja que ocupo se llama "CREMACION" y el archivo que se guarda como respaldo es "presupuesto" junto con el folio utilizado.
Saludos cordiales
Entonces la macro del Open debe quedarte así:
Private Sub Workbook_open()
'al abrir el libro incrementa una celda
if activeworkbook.name = "PRESUPUESTO FSJ" then
Sheets("CREMACION").Range("L2").Value = Sheets("CREMACION").Range("L2").Value + 1
end if
Hola Elsa, mil gracias por el apoyo.
Mira que vi tu macro y se me hace muy buena y lógica, pero al aplicarla no me incrementa el valor de la celda. Ya estuve revisándola muchas veces por si anote algo mal, pero sin suerte. La macro se me hace excelente, ¿me faltara habilitar algo?
Private Sub Workbook_open()
'al abrir el libro incrementa una celda
If ActiveWorkbook.Name = "PRESUPUESTO FSJ" Then
Sheets("CREMACION").Range("L2").Value = Sheets("CREMACION").Range("L2").Value + 1
End If
End Sub
Saludos cordiales
Colocá esta línea al inicio solo por única vez para poder observar el nombre completo del libro, porque seguramente te falta la extensión que yo desconozco
Private Sub Workbook_open()
'al abrir el libro incrementa una celda
msgbox activeWorkbook.name
'sigue el resto
Una vez obtenido el nombre completo del libro, colocá ese texto en la comparación, quitando la agregada obviamente. Por ej:
If ActiveWorkbook.Name = "PRESUPUESTO FSJ.xlsm" Then

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas