Saltar al contenido
Conéctate para seguir esto  
Manuyes

Desactivar X de cierre de formulario a partir de las 20:00

Recommended Posts

Buenas noches, 

                           me gustaría si alguien pudiera indicarme como hacer para que el aspa (X) de cierre de un formulario se desactive a partir de las 20:00 y solo permita cerrar el formulario con el botón Validar y Cerrar. He conseguido deshabilitar la x del formulario con QueryClose, pero me gustaría que lo hiciera a partir de esa hora, ya que durante el día quiero que se abra guardar y cerrar normalmente.

 

Muchas gracias

Cerrar formulario con boton.xlsm

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

O sea, quieres 2 botones de cerrar hasta las 20:00 y 1 botón de cerrar después de las 20:00.

No entiendo esa extraña fascinación que ejerce la anulación del aspa (X) de cierre de un formulario.

¿Porqué no llamas al proceso de Validar y Cerrar en el evento Userform_Terminate y listo.

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

Muchas Gracias @Haplox, creo que hace lo que buscaba.

@Antoni no es que quiera dos botones para cerrar, lo que quiero es asegurarme de que al finalizar la jornada, tras realizar el arqueo se contesten una serie de cuestiones para saber si ha existido alguna incidencia y dejar constancia de ello. Pero el archivo se abre unas 20 veces al dia para guardar cierres parciales u otras cuestiones. creo que si llamo al

Hace 7 horas, Antoni dijo:

proceso de Validar y Cerrar en el evento Userform_Terminate

cada vez que haga un cierre de una caja me pediría validar y solo quiero que lo haga al final del día. Lo primero que se me ocurrió es meter un botón para validar, pero la mitad de las veces, por despiste o por desidia no se validaba, por lo que al final perdía esa información del chequeo. Quizá pueda decirle al evento Userform_terminate, que si la hora es >20:00 llame al proceso Validar y cerrar y evitarme el botón Validar. Probare esta noche. Muchas gracias por la sugerencia.

Tengo otro pequeño problema, cuando marco los check en el userform2 para indicar que todo esta correcto, si marco todos correctos (true) y le doy a cerrar, no me guarda los datos en la hoja1, pero si marco alguno en False, si me los guarda, y no se a que se debe.

Private Sub CommandButton1_Click()
Sheets("Hoja1").Select
If CheckBox1.Value = False Or CheckBox2.Value = False Or CheckBox3.Value = False Then
    If TextBox1.Value = "" Or TextBox2.Value = "" Or TextBox3.Value = "" Then
        MsgBox "Debe especificar un motivo", vbExclamation, "Atencion"
       CheckBox1.SetFocus
        Exit Sub
    End If
 
 buscar2

If CheckBox1.Value = True Then ActiveCell.Offset(0, 3) = "VERDADERO"
If CheckBox1.Value = False Then ActiveCell.Offset(0, 3) = "FALSO"
ActiveCell.Offset(0, 4) = TextBox1.Value
If CheckBox2.Value = True Then ActiveCell.Offset(0, 5) = "VERDADERO"
If CheckBox2.Value = False Then ActiveCell.Offset(0, 5) = "FALSO"
ActiveCell.Offset(0, 6) = TextBox2.Value
If CheckBox3.Value = True Then ActiveCell.Offset(0, 7) = "VERDADERO"
If CheckBox3.Value = False Then ActiveCell.Offset(0, 7) = "FALSO"
ActiveCell.Offset(0, 8) = TextBox3.Value

End If
MsgBox "Arqueo cerrado correctamente", vbInformation, "Aviso"

Unload UserForm2
Unload UserForm1
End Sub

GRACIAS POR LA AYUDA

 

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs
Hace 22 minutos , Manuyes dijo:

engo otro pequeño problema, cuando marco los check en el userform2 para indicar que todo esta correcto, si marco todos correctos (true) y le doy a cerrar, no me guarda los datos en la hoja1, pero si marco alguno en False, si me los guarda, y no se a que se debe.

Te lo dejo en forma de adivinanza... :D

Cita

Te falta un "Else" y te sobra un "If"

 

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs
Hace 1 hora, Haplox dijo:

Te falta un "Else" y te sobra un "If"

Gracias @Haplox, creo que ya lo vi, estaban mal expresadas las condiciones.


Private Sub CommandButton1_Click()
Sheets("Hoja1").Select
If CheckBox1.Value = False And TextBox1.Value = "" Or CheckBox2.Value = False And TextBox2.Value = "" Or CheckBox3.Value = False And TextBox3.Value = "" Then

        MsgBox "Debe especificar un motivo", vbExclamation, "Atención"
       CheckBox1.SetFocus
        Exit Sub
    Else
        buscar2

    If CheckBox1.Value = True Then ActiveCell.Offset(0, 3) = "VERDADERO"
    If CheckBox1.Value = False Then ActiveCell.Offset(0, 3) = "FALSO"
     ActiveCell.Offset(0, 4) = TextBox1.Value
    If CheckBox2.Value = True Then ActiveCell.Offset(0, 5) = "VERDADERO"
    If CheckBox2.Value = False Then ActiveCell.Offset(0, 5) = "FALSO"
     ActiveCell.Offset(0, 6) = TextBox2.Value
    If CheckBox3.Value = True Then ActiveCell.Offset(0, 7) = "VERDADERO"
    If CheckBox3.Value = False Then ActiveCell.Offset(0, 7) = "FALSO"
     ActiveCell.Offset(0, 8) = TextBox3.Value
 
    End If
  

MsgBox "Arqueo cerrado correctamente", vbInformation, "Aviso"

Unload UserForm2
Unload UserForm1
End Sub
 

 

Creo que ahora funciona perfectamente, gracias. Damos por cerrado el tema

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs
Invitado
Este tema está cerrado a más respuestas.
Conéctate para seguir esto  

×

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.