mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009
-
21 oct. 2008 à 16:22
mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009
-
22 oct. 2008 à 13:45
bonjour à tous,
j' ai un userform5 parlequel je rentre des données qui vont dans ma feuil4.
ces données, je les fais ressortir en partie sur des texbox dans mon userform9
et là, le drame, un petit problème de format...!
pour ceux ou j'ai un problème, je rentre dans ces texbox 20 chiffres 11111111111111100000 et lorsque fait mon opération en userform, la textbox me sort : 1,11111111111111E+19
la même opération pour d'autre texbox qui n'ont que 4 chiffres me sortent les 4 chiffres normalement...
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 21 oct. 2008 à 16:27
Bonjour,
lorsque fait mon opération en userform --> quelle opération?
Si c'est récuperer la valeur de ta feuil4 alors il faut simplement convertir.
Je suis pas VBAiste mais en vb6 on convertit par le mot clé Cstr(valeurnumérique). Ainsi dans la textbox on a bien une chaine de type string.
Bon courage
S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009 21 oct. 2008 à 16:50
je ne vois pas comment utiliser le couplage de ces deux fonctions, j'ai éssayé notamment
Private Sub TextBox12_Change()
cstr(round(TextBox12.Value, [0])) As String
lillith212
Messages postés1229Date d'inscriptionvendredi 16 novembre 2007StatutMembreDernière intervention16 juin 2009 21 oct. 2008 à 16:54
Re:
L'exemple ci-dessous utilise la fonction Round pour arrondir un nombre à deux décimales :
Dim MyVar, pi
pi = 3.14159
MyVar = Round(pi, 2) 'MyVar contient
3,14.
ne mets pas de crochet.
S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009 21 oct. 2008 à 17:12
je te remercie, le problème que j'ai c'est où le mettre...
car ma textbox resulte de la selection et du commandbutton. ce n'est donc pas une variable fixe que je peux déterminer à l'avance.
j'ai éssayé de la mettre au départ dans :
Private Sub TextBox12_Change()
Dim MyVar, TextBox12
MyVar = round(TextBox12.Value, 0) 'MyVar contient 3,14.
End Sub
mais la textbox est vide lorsque je clique sur le bouton, donc il y a erreur...
j'ai alors éssayé de l'incorporer dans :
Private Sub CommandButton1_Click()
UserForm9.TextBox12.Value = Feuil4.Cells(y, 12).Value 'n°carte BP
mais là, même chose, au départ la textbox est vide quand on commance l'opération, et ca ne sert à rien de l'employer sur la feuil4, car le format de cellule excel est bon...
mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009 21 oct. 2008 à 17:59
effectivement, comme j'avais cité avant, je ne l'avais pas copié car déjà éffacé, mais j'avais mis:
UserForm9.TextBox12.Value = round(Feuil4.Cells(y, 12).Value, 0) 'n°carte BP
ce qui ne fait aucun changement, et
UserForm9.TextBox12.Value = CStr(round(Feuil4.Cells(y, 12).Value, 0)) 'n°carte BP
que je vient d'éssayer reste sans resultat
en essayant au départ
round(UserForm9.TextBox12.Value, 0) = Feuil4.Cells(y, 12).Value 'n°carte BP
l'erreur est que la textbox est vide lorsque la fonction se mets en route, puisque le but est l'import de données et qu'il faudrait en suite qu'elle soit traité ici ce qui devient impossible...
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201849 21 oct. 2008 à 18:07
l'erreur de textbox vide n'est pas à considérer, du fait qu'on ne fait pas de CHANGE (.text ou .value = autre_chose) dans l'évènement _Change
avec CSTR, c'est .TEXT, pas .VALUE
(peut-être simple erreur de copier/coller?)
et ROUND est une fonction, elle ne peut pas recevoir quelque chose....
cf
round(UserForm9.TextBox12.Value, 0) = ...
tu sembles vouloir aller trop vite, je doute que les conseils aient tous été correctement testés jusque là....
<hr size="2" width="100%" />Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp <
mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009 21 oct. 2008 à 18:14
le probleme est que je ne peux pas changer mon .value en . text, si tu regarde en haut le total, ma recherche se fait comme ça, c'est le resultat qui me pose problème , uniquement pour les cases à 20 carractère chiffrés....
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 oct. 2008 à 18:35
Bonjour,
Moi, j'ai du mal à comprendre pourquoi tes cases "à 20 caractères chiffrés" ne sont pas au format string ...d'emblée (je serais étonné de ce que leur contenu soit destiné à des calculs)...
mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009 22 oct. 2008 à 07:57
et bien dans mon userform5, celui par lequel je rentre les données, l'obligation de mon textbox d'entrée de donnée est:
Private Sub TextBox11_Change()
On Error Resume Next
If Not IsNumeric(Right(TextBox11, 1)) Then
MsgBox "Numérique"
TextBox11 = Left(TextBox11, Len(TextBox11) - 1)
End If
TextBox11.MaxLength = 20 'nbr caractère max
TextBox11.AutoTab = True 'autotabulation
End Sub
en suite, il est renvoyé par un "Private Sub CommandButton10_Click()" par :
IntLigne = ActiveSheet.Cells(2, 1).End(xlDown).Row + 1
'La ligne dans laquelle sont ajoutées les valeurs est définie par la TextBox1
Lgn = Feuil4.Cells(65536, 1).End(xlUp).Row + 1
mythiac
Messages postés72Date d'inscriptionmardi 23 septembre 2008StatutMembreDernière intervention23 février 2009 22 oct. 2008 à 10:52
d'accord je comprends ce que tu veux dire pour le change, mais alors comment puis-je faire? je suis novice, et tous mes changes sont basés comme cela (je me suis aidé par le site et le net...)
et pour:
Private Sub TextBox11_Change()
On Error Resume Next
If Not IsNumeric(Right(TextBox11, 1)) Then
MsgBox "Numérique"
TextBox11 = Left(TextBox11, Len(TextBox11) - 1)
End If
TextBox11.MaxLength = 20 'nbr caractère max
TextBox11.AutoTab = True 'autotabulation
End Sub
y-a t-il autre chose qui puisse remplacer le change, sinon, comment changer le " TextBox11 = Left(TextBox11, Len(TextBox11) - 1)" qui s' y trouve...?