formulairo excel

12/04/2010 - 21:38 por j_lete | Informe spam
hola grupo!!
tengo un formulario en excel 2002 para ser cumplimentado por varios
clientes. Como podría hacer que una vez cumplimentado y al ir a cerrarse,
valide que todos los campos obligatorios (celdas o rango de celdas) no se
dejen vacíos, de forma que no se puede cerrar hasta que se cumplimente,
indicando la celda(s) (o rango(s)) que falta por cumplimentar??

gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
12/04/2010 - 22:27 | Informe spam
hoa, !

... un formulario... Como podria hacer que... al ir a cerrarse
valide que todos los campos obligatorios (celdas o rango de celdas)
no se dejen vacios, de forma que no se puede cerrar hasta que se cumplimente
indicando la celda(s) (o rango(s)) que falta por cumplimentar??



si podemos asumir que los rangos/celdas a cumplimentar (en la hoja activa) son:
A1, B3:B6, D7:E7, D10:E14

prueba este codigo en el evento de cierre en el modulo del formulario...
(OJO: asegurate de proveer otro medio de salida y/o de rellenar lo que haga falta)
(asi como ajustar a tus rangos reales)

saludos,
hector.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
With Range("a1,b3:b6,d7:e7,d10:e14")
If Evaluate("counta(" & .Address & ")") <> .Cells.Count Then
Cancel = True
MsgBox "No se han cumplimentado las celdas:" & vbCr & _
.SpecialCells(xlCellTypeBlanks).Address(0, 0)
End If
End With
End Sub
Respuesta Responder a este mensaje
#2 j_lete
14/04/2010 - 21:07 | Informe spam
Hola Hector!!

Intentando entender/aprender sobre la solucion que me propones tengo interés
en conocer lo que hace el codigo
If Evaluate("counta(" & .Address & ")") <> .Cells.Count Then
Evaluate lo he encontrado en la ayuda del excel pero no he encontrado
"counta", ni lo que realza la expresión . address

Respecto a
OJO: asegurate de proveer otro medio de salida y/o de rellenar lo que haga
falta)
que quieres decir con otro medio de saldia y/o rellenar ...

Otra cosa ¿hay algún manual que me permita aprender todo esto??

como siempre muchas gracias
Saludos

"Héctor Miguel" escribió:

hoa, !

> ... un formulario... Como podria hacer que... al ir a cerrarse
> valide que todos los campos obligatorios (celdas o rango de celdas)
> no se dejen vacios, de forma que no se puede cerrar hasta que se cumplimente
> indicando la celda(s) (o rango(s)) que falta por cumplimentar??

si podemos asumir que los rangos/celdas a cumplimentar (en la hoja activa) son:
A1, B3:B6, D7:E7, D10:E14

prueba este codigo en el evento de cierre en el modulo del formulario...
(OJO: asegurate de proveer otro medio de salida y/o de rellenar lo que haga falta)
(asi como ajustar a tus rangos reales)

saludos,
hector.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
With Range("a1,b3:b6,d7:e7,d10:e14")
If Evaluate("counta(" & .Address & ")") <> .Cells.Count Then
Cancel = True
MsgBox "No se han cumplimentado las celdas:" & vbCr & _
.SpecialCells(xlCellTypeBlanks).Address(0, 0)
End If
End With
End Sub


.

Respuesta Responder a este mensaje
#3 j_lete
20/04/2010 - 22:03 | Informe spam
Hola Hector!!

He incluido el codigo (tal cual) en el modulo de un libro, pero no me ha
funcionado

Gracias y saludos

"Héctor Miguel" escribió:

hoa, !

> ... un formulario... Como podria hacer que... al ir a cerrarse
> valide que todos los campos obligatorios (celdas o rango de celdas)
> no se dejen vacios, de forma que no se puede cerrar hasta que se cumplimente
> indicando la celda(s) (o rango(s)) que falta por cumplimentar??

si podemos asumir que los rangos/celdas a cumplimentar (en la hoja activa) son:
A1, B3:B6, D7:E7, D10:E14

prueba este codigo en el evento de cierre en el modulo del formulario...
(OJO: asegurate de proveer otro medio de salida y/o de rellenar lo que haga falta)
(asi como ajustar a tus rangos reales)

saludos,
hector.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
With Range("a1,b3:b6,d7:e7,d10:e14")
If Evaluate("counta(" & .Address & ")") <> .Cells.Count Then
Cancel = True
MsgBox "No se han cumplimentado las celdas:" & vbCr & _
.SpecialCells(xlCellTypeBlanks).Address(0, 0)
End If
End With
End Sub


.

Respuesta Responder a este mensaje
#4 Héctor Miguel
21/04/2010 - 03:47 | Informe spam
hola, !

He incluido el codigo (tal cual) en el modulo de un libro, pero no me ha funcionado ...

prueba este codigo... en el modulo del formulario...





saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida