Deshabilitar botón en excel con macro programada en módulo

Tengo una hoja de cálculo excel con macros para facturar. Tengo un botón que guarda la factura nueva en otra hoja de cálculo por si hay que modificarla una vez realizada, luego borra el contenido, luego incrementa el número de factura en 1 para preparar la hoja para el siguiente registro y vuelve a guardar la hoja sobrescribiendo la hoja de cálculo original para introducir el nuevo registro y cierra el documento.

El problema es que en los documentos donde están las facturas ya rellenas ese botón aparece y al pulsarlo hace todo el proceso y la hoja para hacer una nueva factura se queda con un número más de la factura que se haya modificado, con lo que se pierde el valor real y no me sirve el contador.

No se como hacer para que en las facturas ya rellenas o bien se deshabilite ese botón o de alguna manera reconozca que es una factura ya guardada y no toque la hoja de calculo original.

Sea como sea no se como plantearlo.

1 Respuesta

Respuesta

Tal vez, una solución sea comprobar el nombre del fichero a la hora de pulsar el botón. Si es una factura nueva, en el nombre pondrá "Facturas" y puede guardar y modificar el número de factura sin problemas. De lo contrario, si tiene por nombre "Factura 00000" guarda el fichero pero no sobrescribe nada del fichero de crear nueva factura.

Pero no se como hacer esto

Me auto respondo por si alguien luego le sirve.

He creado una variable "Nom" donde guardo el nombre del archivo abierto al inicio del sub y luego un "if" para que compruebe el nombre, para ver si es como el nombre del archivo que crea una factura nueva y en caso de que lo sea todo el proceso de guardado en un archivo a parte.

Si no lo fuera, la macro entiende que es una factura ya hecha, por lo que solo guarda el archivo, sin sobrescribir nada en la factura original.

Nom = ThisWorkbook.Name
If Nom = "Facturas.xlsm" Then
'aqui va todo el proceso de guardar la factura creada en un archivo nuevo
Else
    ActiveWorkbook.Save
End If

Una solución sencilla, pero no había caído en ella.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas