Bonjour,
Dans mon projet j'ai un Userform avec plusieurs TextBox dans lesquelles l'utilisateur devra entrer des dates au format jj/mm/aaaa.
Si la date entrée est supérieure à la date du jour je souhaite afficher un MsgBox pour l'avertir, voici le code que j'ai intégré dans ma macro:
Le problème c'est que dès qu'un chiffre est entré ma MsgBox apparaît, donc avant d'avoir saisi la date complète.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 If Milestone_Edit.TextBox1.Enabled = True And Milestone_Edit.TextBox1.Value <> "" Then If Milestone_Edit.TextBox1.Value <> "" And Milestone_Edit.TextBox1.Value > Act.Range("C1").Value Then MsgBox " Invalid Date " & vbCr & "Date must be lower than the Current Data Date", , "WARNING" Milestone_Edit.TextBox1.SetFocus End If ACVAL.Offset(i, 3).Value = CDate(Milestone_Edit.TextBox1.Value) ' Les données issues d'une TextBox sont au format String il faut donc spécifier le format désiré ici CDate ACVAL.Offset(i, 3).NumberFormat = "[$-410]dd-mmm-yy;@" Milestone_Edit.TextBox1.Value = ACVAL(i, 3).Value Milestone_Edit.TextBox1.Enabled = False End If
J'ai donc essayé ceci :
Dans ce cas de figure j'ai un message d'erreur VBA qui s'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 If Milestone_Edit.TextBox1.Value <> "" And Milestone_Edit.NumberFormat = "[$-410]dd-mmm-yy;@" And Milestone_Edit.TextBox1.Value > Act.Range("C1").Value Then MsgBox " Invalid Date " & vbCr & "Date must be lower than the Current Data Date", , "WARNING" Milestone_Edit.TextBox1.SetFocus End If
D'après l'aide cela peut venir du nom de l'objet ou du membre mal orthographié ou d'un index de collection hors limite.Erreur de Compilation
Membre de méthode ou de données introuvable
Pour l’orthographe, j'ai vérifié et ce n'est pas cela, reste l'index de collection ... ???
Une idée, un conseil seront les bienvenus
merci pour votre aide et votre collaboration
Eric
Partager