Belag55
Messages postés20Date d'inscriptionmercredi 17 décembre 2008StatutMembreDernière intervention13 février 2009
-
18 déc. 2008 à 17:01
piloulac
Messages postés21Date d'inscriptiondimanche 10 juin 2007StatutMembreDernière intervention28 décembre 2008
-
20 déc. 2008 à 00:54
Bonjour,
Dans un formulaire (sous VBA - Excel), je souhaite imposer à l'utilisateur d'entrer dans un textbox un N° à 8 chiffres dont les 2 permiers sont déterminés par l'année en cours et le 3 ème imposé (exemple : 095xxxxx pour l'année 2009)
si cela n'est pas possible, il faudrait que je puisse au moins imposer 8 chiffres.
Pour ce qui est de la longueur de chaine de caractère, pas de problème, j'ai écris le code suivant :
If Me.TXT_bob.TextLength <> 8 Then
errbox = MsgBox("Veuillez entrer un N° valide", , "Erreur de numérotation !")
Exit Sub
End If
Pour imposer des chiffres je ne sais pas faire.
J'ai essayé de déclarer une variable de type "long" = Me.TXT_bob.Value
puis utiliser "IsNull" pour vérifier que la validité de la valeur entrée, mais cela ne marche pas. ça me donne un message d'erreur d'incompatibilité. Evidemment, vu que ma variable est déclarée comme "long" et que je la définis comme étant = à la valeur entrée dans le textbox avant de tester la validité par "IsNull", ça ne peut pas marcher. Et là je bloque.
Merci d'avance à ceux qui pourront donner un coup de pouce au NooB ici présent
thome76
Messages postés47Date d'inscriptionmardi 16 décembre 2008StatutMembreDernière intervention 5 juin 2009 18 déc. 2008 à 17:24
je pense que tu devrais aussi mettre le format à mettre genre du met la valeur par défaut
095xxxxx dans ta textbox et s'il se trompe tu dire dans le message d'erreur remplacer les x par des nombre un truc comme ça ... Re garde si tu peux pas personnalisé le masque de ta textbox
Belag55
Messages postés20Date d'inscriptionmercredi 17 décembre 2008StatutMembreDernière intervention13 février 2009 18 déc. 2008 à 20:51
Merci à vous deux.
Je testerai ça dès demain au boulot.
3 jours de formation c'est un peu léger pour faire ce qu'on me demande au taf et je manque cruellement de vocabulaire (code) VBA et les recherches sont longues et fastidieuses quand on manque de temps. Il me reste 4 jours pour cloturer mon programme
Belag55
Messages postés20Date d'inscriptionmercredi 17 décembre 2008StatutMembreDernière intervention13 février 2009 18 déc. 2008 à 20:59
Thome76, merci pour ta suggestion, mais je ne peux malheureusement pas définir les 3 premiers chiffres du nombre à entrer comme tu le proposes. Ce qui est valable en 2009 ne le sera plus les années suivantes et je tiens à ce que le programme soit autonome sans avoir à le modifier. Il n'est pas sur que je sois encore au poste que j'occupe dans les années à venir et il faudra que ça tourne sans moi
A moins qu'il existe un moyen de n'écrire que les 2 derniers chiffres du résultat de "year(date)" par un code, mais là encore, je ne connais pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
thome76
Messages postés47Date d'inscriptionmardi 16 décembre 2008StatutMembreDernière intervention 5 juin 2009 19 déc. 2008 à 09:32
Non en programmant directement le default value en utilisant la date système c'est possible non?
ça je n'ai pas regarder mais ça doit être trop possible de faire ça en programmation
Tu peux créer un
Label1.Caption=AnAbreg
Tu colles cette étiquette à Gauche ton TextBox
Tu lui choisis les mêmes apparences que ton TextBox
Dans la sub Exit de ton TextBox, tu testes le format.
Maval=TextBox1.Text
If IsNumeric MaVal And Len(Maval)=7 then
MaVal=AnAbreg & MaVal 'Tu récupères ainsi ton format à 9 chiffres
Else
MsgBox "Format incompatible .........."
Exit Sub
End If