Visual Basic/Excel | Condition avec "Date" [Résolu/Fermé]

Signaler
-
 Marounda -
Bonjour,

J'ai créé un outil de calcul pour mon travail.

Il est pas mal et j'aimerais le protéger et je bloc sur un truc tout con.

Le tout se situe dans VBA project => Microsoft Excel Objetcts => ThisWorkbook

Je passe par là, car à l'ouverture du fichier, je lui demande de comparer la date, si la date du jour est supérieure au 25/03/2010 (pour exemple), alors je désire qu'il me charge un UserForm précis, qui imposera un mot de passe pour pouvoir faire fonctionner le fichier Excel, sinon je fais fermer le fichier Excel !


Bref, alors dans ThisWorkbook j'ai mis ce code :
Private Sub Workbook_Open()
Application.WindowState = xlMaximized 'Je demande à agrandir la fenêtre par esthétisme
Sheets("Accueil").Select 'Je désire que l'outil s'ouvre sur ma page d'accueil

If Date > "25/03/2011" Then 'Ici je pose ma condition
UserForm10.Show 'Je lance un UserForm si la condition est remplie
Else:
UserForm1.Show 'Sinon, je lance cet UserForm
End If

End Sub

Si je met Date > "27/01/2011", je vais avoir le premier UserForm, si je met Date > "28/01/2011" j'ai le 2ème UserForm (car on est le 28), donc j'ai envie de dire tout est parfait !

Mais dès que je met Date > "25/03/2011" (ou même 20/02/2011), enfin dès que je sors de Janvier, j'ai l'impression que ça ne fonctionne plus et il me charge en permanence le premier UserForm...

A croire qu'il ne connait pas la date du jour...

Comment puis-je modifier ce bout de code qui me paraît juste afin qu'il fonctionne quelque soit la date limite fixée ?

Un très grand merci par avance, en espérant que vous saurez m'aider :)

Merci à tous !

2 réponses

Messages postés
12251
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2021
2 621
Salut,
Je pense que ton problème tiens dans le type de variable. Tu compares Date qui est du type date avec "......" qui serait du type string.
Essaye ceci :
Sub test() 
If CDate(Date) > CDate("25/03/2012") Then 
    MsgBox "Date du jour supérieure à date indiquée" 
Else 
    MsgBox "Date du jour inférieure à date indiquée" 
End If 
End Sub

Cela fonctionne en changeant la date entre ""
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
I love you pikachu, ehhhh pijaku :D

Ça fonctionne à merveille !

Oui c'est donc une histoire de type de variable...

J'ai vu pas mal de tutoriel mais j'ai encore du mal avec tout ça je dois avouer.

En tout cas, un grand merci à toi et bon week-end !