Visual Basic/Excel | Condition avec "Date"
Résolu
Marounda
-
Marounda -
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 :
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 !
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
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 :
Cela fonctionne en changeant la date entre ""
"Laissez-moi deviner... Votre surnom, c'est «Bande Passante»? "
- Le Tribunal des flagrants délires- P.Desproges -
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 -