No Guardar con campos en blanco

Hola Tavopz, otra vez más.
Que pena molestarlo tanto, pero tengo una inquietud.
Tengo un Formularios que me guarda datos de personas, pero quiero que en el campo "Cedula" u otros campos excepcionales sin están vacíos o en blanco no me deje guardar el registro...
Como se haría para no permita guardar hasta que esos campos estén llenos. Y si no lo estan, me muestre un MsgBox.?
Gracias Otra vez Sr Tavopz.

1 Respuesta

Respuesta
1
Puedes utilizar el evento BeforeSave del Workbook, para que cuando la persona vaya a guardar se evalúe que todos los campos necesarios se encuentran llenos y muestre el mensaje.
¿La idea es que no permita guardar? ¿O qué Guarde pero además muestre una advertencia de que se deben completar los datos?
La primera opción es un poco riesgosa porque puede ocurrir algún problema que haga se pierda la información (un corte de energía o algo) y el usuario no habrá podido guardar debido a que no tiene toda la información. Te recomiendo hacerlo de la segunda forma y guardar en una celda un valor que sirva para que no pueda Salir de la aplicación sin haber completado todo.
El código completo sería entonces:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Range("AA1").Value = "Pendiente" Then
MsgBox ("No puede cerrar el archivo hasta completar todos los campos")
Cancel = True
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Range("A1").Value = "" Or Range("B1").Value = "" Then
MsgBox ("Existen campos en blanco que deben completarse antes de salir")
Range("AA1").Value = "Pendiente"
Else
Range("AA1").Value = ""
End If
End Sub

Este código lo copias y pegas en el código en la pestaña que dice "ThisWorkbook".
Ahi si quedaria dificill, pues el formulario va guardando continuamente y no tiene rangos fijos... es una base de datos.
como puede guardar en A1, el proximo sera A2 y asi susecivamente. Habra ajguna forma de que en el boton guardar del formulario se active algun codigo que revise los textbox vacios?
Gracias.
Ok. ¿Lo qué tienes es un UserForm y en el UF tienes un botón de Guardar?
Pues si es así entonces claro, debes evaluar que los textbox que te interesan no estén en blanco antes de ejecutar el código que guarda.
No entiendo donde tienes el problema. Sería cuestión de comparar cada textbox.text para que sea diferente de "".
¿Me explicas?
¿Cómo los comparo, con "or"?
Si, puede ser:
IF Textbox1.text = "" or Textbox2.Text = "" or Textbox3.Text = "" Then
      Msgbox("Complete los campos")
Else
      'El procedimiento normal en caso que esté lleno
End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas