|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour,
j'ai un usf avec de nombreuse textbox, et je ne sais pas pourquoi quand je m'amuse à cliquer d'une textbox à une autre ma macro s'arrête et me mets incompatibilité de type Voici le code de la textbox lors que ma macro bogue : Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonjour,
Le message d'erreur indique un problème de type de variable incompatible avec la fonction cdbl. Soit parce-qu'il n'y a pas de valeur dans TextBox_ht et alors par défaut c'est un type String soit parce-que l'on a tapé une chaîne de caractères Fais précéder par la fonction val et le problème devrait disparaître.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
Effectivement mon problème disparait mais il en pose d'autres;
Le premier c'est que si je tape un nombre à virgule par exemple 15.2 il est transformé en 15.00 au lieu de 15.20 (ce que j'ai avant l'ajout de Val) Le second c'est que je peux avoir un champ vise (notamment le second) et là je me retrouve avec 0.00 ce qui dans le cadre d'utilisation de mes textbox est une erreur car le montant ht y es quasiment toujours mais pas le montant ttc. Donc c'est pas résolu. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonjour,
Ton problème vient du fait que tu utilises une variable de type String et que le séparateur décimale est "," ou "." suivant la région et donc dans un cas, tu auras bien la décimale et dans l'autre pas et c'est logique. Chez moi "12.5" donne 12.5 avec la fonction val et "12,5" donne 12
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() |
D'accord mon séparateur de décimale est fixé et c'est le point. Je peux toujours passé sur une virgule mais c'est pas le problème.
Le problème c'est que je complète mais montant avec un ou deux zéro selon les cas et là ce qui doit le faire ne passe pas, à mon avis, à cause du val. Bien entendu je peux me tromper mais comme ça marché avant l'ajout de val et que je n'ai fais que cet ajout je pense que cela vient de là. Je viens de tester avec la virgule et le résultat est le même qu'avec le point que la valeur soit du type xx,xx ou yy.yy je me retrouve avec xx.00 ou yy.00 alors que je cherche à retomber sur ma valeur yy.y0 dans le cas ou ma valeur ressemble à ça :15.2 qui à la suite du la sortie de ma textbox ressemble à ça :15.20 Apparemment en faisant ça j'ai presque ce que je cherche Code :
|
||
|
|
00
|
|
|
#6 | ||||
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonjour,
Citation:
Code :
TextBox_ht = IIf(IsNumeric(vResult_ht), Format(vResult_ht, "###0.00"), "") Si ta solution initiale te donnait satisfaction sauf quand le TextBox était vide, je crois qu'il faut alors vérifier simplement si celui-ci est vide et ne pas passer par l'étape de conversion dans ce cas là. Citation:
Je pense qu'il faudrait que tu ouvres un nouveau sujet en expliquant ce que tu veux faire avec ce TextBox. Dans le cas contraire, tu pars vers une aventure de plusieurs heures à coup de questions/réponses en plaçant des rustines. Avant, je te conseille la lecture de ce Didacticiel de Didier Gonard qui peut-être t'inspirera.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
||||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Le fait d'avoir .00 vient de mont formatage quand une valeur et rentrer et dans ce sens la il me donne entière satisfaction.
Le fait de me retrouver avec 0.00 dans mon textbox quand j'en change ne c'est produit que pas l'ajout de val qui interprète le vide de mon string en valeur nulle c'est à dire 0. A la suite de cela mon formatage fait ce pourquoi je l'ai mis et complète les décimales de ma valeur. Mais bon l'essentiel et de ne plus avoir une erreur lors de l'exécution. Didacticiel déjà lu. |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonjour,
Citation:
Cas n° 1 quand le TextBox est rempli (avec un nombre entier, une décimale, voir deux) Cas n° 2 quand le TextBox est vide. Tout est possible en informatique, c'est une question de temps et d'argent. Le tout est de bien exprimer ses besoins.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() |
Juste pour dire que j'ai ce que je veux grâce à un if then else.
Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com