condicionar el cierre de un libro excel

21/06/2007 - 18:44 por ClauContreras2005 | Informe spam
Hola a todos quisiera saber si me pueden ayudar nesecito saber como
puedeo condicionar el cierre de un libro excel por ejemplo tengo una
planilla y al usuario le falto completar algunos datos y cierra el
libro, tengo una macro que chequea los datos el cual enviar un mensaje
que dice desea continuar si dice ok que se cierre o sino
que siga activo cualquier ayuda se los agradecere chau

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/06/2007 - 23:04 | Informe spam
hola, Claudio !

... como puedeo condicionar el cierre de un libro excel por ejemplo
... al usuario le falto completar algunos datos y cierra el libro
tengo una macro que chequea los datos... enviar un mensaje que dice desea continuar
si dice ok que se cierre o sino que siga activo [...]



podrias usar el evento '_beforeclose' de tu objeto libro [ThisWorkbook] PERO...
necesitas comentar [+/- exactamente] cuales son hoja y rango que se deben 'validar'
y cuales son las condiciones para que el codigo le 'permita' [o no] salir/cerrar el libro

[p.e.] que hace tu macro que chequea los datos ?

hay 'cosas' que no se alcanzaron a ver [desde este lado del mensaje] :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

p.d. un poquitin de paciencia... no vendria mal [sobre todo cuando la exposicion omite detalles] :D
Respuesta Responder a este mensaje
#2 David
22/06/2007 - 03:13 | Informe spam
Hola, ClauContreras.

Por lo que comentas, supongo que conoces de VBA. En lo personal, te
sugeriría dejar a un lado la programación en algunas cosas que se pueden
hacer y controlar más fácilmente desde la hoja.

Mi propuesta (y ya la tengo funcionando en algunos proyectos), sería que
insertaras una hoja adicional en la que puedas evaluar las validaciones de tu
plantilla, y que luego puedas ocultar desde el Editor de VBA de manera que el
usuario no la pueda abrir (XlVeryHidden).

En esta hoja (supongamos que la llamaste Validaciones), puedes evaluar
condiciones como las de los siguientes ejemplos (Recuerda que yo utilizo la
coma por separador. Si no te funciona, cambia todas las comas de las
fórmulas por punto y coma):

Ingresó un nombre en la celda A1 de la hoja Forma1:
-Escribe en B2: Ingresó nombre
-Escribe en C2: =LARGO(Forma1!A1)>0
-Escribe en D2: =SI(C2,"",concatenar("Ingrese el nombre del curso.",
caracter(13)))
-Escribe en E2: =SI(C2,0,1)

La fecha de la celda A2 es posterior a la actual:
-Escribe en B3: Fecha
-Escribe en C3: =Forma1!A2>=HOY()
-Escribe en D3: =SI(C3,"",concatenar("La fecha de inicio no es válida.",
caracter(13)))
-Escribe en E3: =SI(C3,0,1)

Ingresó un número entero positivo en A3:
-Escribe en B4: Número válido
-Escribe en C4: =Y(Forma2!A3>0,ENTERO(Forma2!A3)=Forma2!A3)
-Escribe en D4: =SI(C4,"",concatenar("El número no es válido.", caracter(13)))
-Escribe en E4: =SI(C4,0,1)

Y así continúas con el resto de validaciones que necesites efectuar.

Para totalizar los resultados, puedes ingresar en alguna celda en blanco
(por ejemplo H1) la siguiente fórmula: =Suma(E:E) Para que el archivo se
pueda cerrar o guardar, aquí debe haber un cero (es decir, todos los datos
deben ser válidos).

También podrías generar un mensaje al usuario, diciéndole qué fue lo que
falló, ingresando en alguna celda en blanco (por ejemplo H2) una fórmula que
concatene tus mensajes de error:
=Concatenar(D2,D3,D4)

Ahora viene la parte de programación. Desde el Editor de VBA, haces doble
clic en el objeto ThisWorkbook, en la parte superior del contenido del módulo
verás que hay dos cuadros combinados. En el primero seleccionas WorkBook y
en el segundo BeforeClose, y editas hasta tener lo siguiente:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets("Validaciones").Range("H1").Value > 0 Then
MsgBox Sheets("Validaciones").Range("H2").Value
Cancel = True
End If
End Sub

No olvides comentar los resultados... Saludos.



"" escribió:

Hola a todos quisiera saber si me pueden ayudar nesecito saber como
puedeo condicionar el cierre de un libro excel por ejemplo tengo una
planilla y al usuario le falto completar algunos datos y cierra el
libro, tengo una macro que chequea los datos el cual enviar un mensaje
que dice desea continuar si dice ok que se cierre o sino
que siga activo cualquier ayuda se los agradecere chau


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