|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour, voici un petit code qui fonctionne (presque):
Code :
Donc mon code complète bien mon entier avec deux 0 mais pas mon chiffre à virgule lorsque il en faut un à la fin. Une idée? |
||
|
|
00
|
|
|
#2 | ||||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonsoir le forum,
La textbox retourne un STRING. Il faut donc convertir: Code :
Code :
Teste et tu nous diras.
__________________
Bon courage à toi. |
||||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
En rentrant en dur la valeur, ça doit marcher. mais comme ma valeur n'est pas fixe ( 13.2 étant une valeur exemple) cela ne fonctionne pas car j'ai une erreur au niveau de la conversion de ma textbox en double.
Je vais essayé de passé par une variable. Par ailleurs je ne cherche pas à remplacer mon point par une virgule ce que font tes lignes replace si je ne me trompe pas. Apparemment c'est un problème de conversion de type. après tests, avec une valeur en dur j'ai mon 0 qui s'affiche à la fin de ma valeur de type xx.x (ex: 12.30 à l'arrivée) avec une valeur non fixe j'ai bien mon 00 quand c'est un tpe xx (ex:12.00 à l'arrivée). Mais toujours pas de moyen pour avoir un ou deux zéro à l'arrivé d'un nombre quelconque. bon je laisse tomber par contre je voudrais bien une solution pour éviter que ma valeur disparaisse lorsque je valide ou change de textbox. |
|
|
00
|
|
|
#4 | ||||||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Je gérerai la saisie, non pas avec une procédure Citation:
Citation:
Cette ligne Code :
Code :
Code :
If InStr(TextBox_ht.Value, ".") <> 0 And Len(TextBox_ht.Value) > InStr(TextBox_ht.Value, ".") + 1 Then TextBox_ht.Value=TextBox_ht.Value
__________________
Bon courage à toi. |
||||||
|
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 692 ![]() |
Bonjour,
L’expression retournée par ta TextBox n’est pas interprétée comme un nombre, ce qui explique que la valeur disparait lorsque tu quittes la TextBox. J’ai adapté ton code pour que le point soit remplacé par une virgule. J’ai effectué le test et le résultat me semble correct. Par contre, je ne suis pas parvenu à obtenir un résultat probant en modifiant le séparateur décimal dans les options avancées. Code :
Cordialement. |
||
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() |
Mettre _change à la place d'un _keypress ne servira pas à grand chose car je peux retourner dans ma textbox même si je valide le résultat car je sors de mon formulaire pas un bouton.
Les lignes que tu m'as donné Code :
If InStr(TextBox_ht.Value, ".") <> 0 And Len(TextBox_ht.Value) > InStr(TextBox_ht.Value, ".") + 1 Then TextBox_ht.Value=TextBox_ht.Value Je ne veux pas changer mon point par une virgule, et je pense pas que ce soit la solution pour obtenir un zéro dans le cas d'un nombre du style 12.3 J'ai vu hier soir que j'avais false dans le retour de IsNumeric(textbox_...) J'ai mon résultat qui passe sans le zéro à la fin en le passant dans une variable mais je perds aussi les deux 00 automatique lors de la mise d'un entier dans ma textbox. Au pire avec un seul chiffre pas de souci ma colonne devrait le gérer mais pas si j'ai plusieurs valeurs ![]() Aucun affichage dans ma cellule avec le passage par variable string. Vu que la conversion d'un string ne marche pas je me retrouve dans une impasse. J'ai vraiment plus aucune idée. |
|
|
00
|
|
|
#7 | ||||
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Je me suis créé un formulaire tout simple sur lequel j'ai placé une TEXTBOX et un BOUTON. J'ai posé ton code comme ceci: Code :
J'ai ensuite posé un label : Après appui sur la touche "ENTREE" puis clic sur le bouton le label a affiché la même info que ci-dessus Code :
__________________
Bon courage à toi. |
||||
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() |
J'ai passé tout mon code en commentaire sauf la partie sur mon textbox et même avec ton code (mis à part le bouton puisque avant de valider dans ma cellule je cherche quand même à pouvoir ma valeur) ça ne fonctionne pas (même excel mais sous seven chez moi)
effectivement si je tape 0 j'ai 0.00 mais cela le fait avec n'importe quelle entier de 0 à 9999999.... par contre pour 12.3 j'obtiens rien ma valeur disparaît comme avant que j'appuie sur "tab" ou "entrée". mon bouton ne sert qu'à envoyer tout mes champs dans les cellules désignées avant (mais actuellement il ne fait rien puisque tout est en commentaire) |
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Marc Agent de maitrise Inscription : novembre 2007 Messages : 243 ![]() |
Bonjour le forum,
Je suis surpris, car comme je te l'ai dit sur le formulaire que j'ai créé pour tester ton code l'action sur "TAB" ou "ENTREE" réalise bien ce que tu demandes. Je suis sur 2007. Si tu essaies de faire comme moi dans un nouveau fichier cela fonctionne-t-il? J'ai été au plus simple Formulaire Textbox CMD et label
__________________
Bon courage à toi. |
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Retraité Inscription : avril 2011 Messages : 692 ![]() |
Bonjour,
Voici un code qui fonctionne quel que soit le séparateur de décimale (point ou virgule). Code :
Code :
Range("A1") = CDbl(TextBox_ht) ' A adapter |
||
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() |
@ duddy : j'ai suivi ton conseille pris ton code et créé un formulaire tout simple et effectivement cela marche.
Du coup je ne vois pas pourquoi cela ne marche pas dans mon projet vu que tout est en commentaire. Maintenant je viens de le retester dans mon code en enlevant tout puis en remettant tout et finalement ça marche donc c'est mon code dans la textbox qui est foireux mais je ne sais pas pourquoi. |
|
|
00
|
|
|
#12 | ||
|
Membre du Club
![]() |
je m'excuse de rouvrir le topic mais j'ai une incompatibilité de type alors que ce code et 4 fois le même et sans souci
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com