Jump to content
Sign in to follow this  
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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites
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"

 

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png