Visual Basic/Excel | Condición con «Date»

Resuelto
Marounda -  
 Marounda -
Hola,

He creado una herramienta de cálculo para mi trabajo.

Está buena y me gustaría protegerla y me atasco con una tontería.

Todo se ubica en VBA project => Microsoft Excel Objetos => ThisWorkbook

Paso por ahí, porque al abrir el archivo, le pido que compare la fecha; si la fecha del día es posterior al 25/03/2010 (por ejemplo), entonces quiero que me cargue un UserForm específico, que impondrá una contraseña para poder hacer funcionar el archivo de Excel, de lo contrario cierro el archivo de Excel.

En resumen, dentro de ThisWorkbook puse este código :
Private Sub Workbook_Open() Application.WindowState = xlMaximized 'Pido maximizar la ventana por estética Sheets("Accueil").Select 'Deseo que la herramienta se abra en mi página de inicio If Date > "25/03/2011" Then 'Aquí pongo mi condición UserForm10.Show 'Lanzo un UserForm si se cumple la condición Else: UserForm1.Show 'De lo contrario, lanzo este UserForm End If End Sub 


Si pongo Date > "27/01/2011", obtendré el primer UserForm, si pongo Date > "28/01/2011" obtengo el segundo UserForm (porque es 28), así que quiero decir que todo está perfecto!

Pero tan pronto como pongo Date > "25/03/2011" (o incluso 20/02/2011), bueno tan pronto como salgo de Enero, tengo la impresión de que ya no funciona y me carga eternamente el primer UserForm...

Es como si no conociera la fecha actual...

¿Cómo puedo modificar este trozo de código que me parece correcto para que funcione sin importar la fecha límite establecida?

Un gran gracias de antemano, esperando que puedan ayudarme :)

Gracias a todos!

Configuración: Windows XP / Safari 534.10

2 respuestas

pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 772
 
Hola,
Creo que tu problema está en el tipo de variable. Comparas Date, que es de tipo date, con ""......"" que sería de tipo string.
Prueba esto:
Sub test() If CDate(Date) > CDate("25/03/2012") Then MsgBox "La fecha actual es posterior a la fecha indicada" Else MsgBox "La fecha actual es anterior a la fecha indicada" End If End Sub

Esto funciona cambiando la fecha entre ""
"Déjame adivinar... ¿tu apodo es «Ancho de banda»?"
- El Tribunal de los delirios flagrantes- P.Desproges -
0