Que pena , le quiero sacar el jugo a este foro y a mis amigos que responden.
Lo que he querido desde un principio es evitar que un usuario devuleva la
fecha del windows, o por lo menos persuadirlo de que lo haga.
estableci el siguiente codigo en un modulo:
Private Sub Auto_Open()
Application.ScreenUpdating = False
Sheets("Hoja1").Select
Range("A1").Select
Range("A1").Value = Date
Range("A1").Select
Selection.EntireRow.Insert
End sub
Este codigo hace que cada vez que se habra el archivo se vaya anotando la
fecha de manera que con el tiempo tendre en el archivo una gran columna
llena de fechas una en cada celda que si el usuario no ha modificado la
fecha en la barra de herramientas de windows sera una columna con fechas
progresivas cada vez mayores(o por lo menos iguales si se abre vairas veces
en un dia) de arriba para abajo:
A1 7 de julio
A2 6 de julio
A3 5 de julio
A4 4 de Julio
A5 3 de julio
El asunto es que nesesito una macro o codigo que mande un mensaje en el
momento en que esa progresion se rompa , por que si mi usuario devuleve a
una fecha anterior el windows ya la secuencia de la columna se interrumpira
y la fecha mas reciente sera menor que las anteriores
asi esta:
A1 7 de julio
A2 6 de julio
A3 5 de julio
A4 4 de Julio
A5 3 de julio
pero si el usuario baja la fecha y pone en el windows( en el cuadro date /
time properties de la barra de herramintas) que hoy sea la fecha de 3 de
julio al abriri el archivo la columna quedaria asi
A1 3 de julio
A2 7 de julio
A3 6 de julio
A4 5 de julio
A4 4 de Julio
A6 3 de julio
entonces ya no habria una secuencia correcta en la columna(no importa que
haya fechas iguales lo que no puede suceder es que alguna de las de arriba
sea menor que la anterior), aqui es donde quiero que aparaezaca un cuadro
diciendo algo asi " si sigues cambiando la fecha del sistema ,este programa
dejara de funcionar y se borrara tu disco duro"
Ademas podria introducir una formula que haga variaciones en todo el libro
dejandolo inutilizable si se cumple la condicion:
"La columna de fechas no esta en un orden correcto", solo que no se como
expresar esto ni en una macro ni en una formula.
Trate de usar este:
Private Sub Worksheet_Calculate()
If [A1] < [A6] Then _
MsgBox "texto del mensaje"
End Sub
pero no se produce el mensaje cuando se pone una fecha menor al principio de
la columna.
Tal vez alguien me pueda ayudar gracias.
Leer las respuestas