Erreur dexécution 380. Valeur de propriété non valide

meclome Messages postés 10 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 15 avril 2005 - 15 avril 2005 à 11:31
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 15 avril 2005 à 13:32
Slt ! Les gars j’ai de sérieux problème. Pour avoir les séparateurs de milliers au niveau des montants sur un formulaire, j’ai opté pour l’objet MaskEdBox avec Mask= ‘# ### ###’ au lieu de TextBox. A la saisie, j’ai remarqué que le montant ne s’affiche pas toujours comme il faut. QUESTION1 : Que faire ?


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Je veux cumuler 2 montants et afficher le résultat. Pour se faire j’ai déclaré 2 variables integer. Je réalise la somme des 2 montants : mMTDEBIT + mMTDEBP En voulant afficher le résultat avec les séparateurs de milliers, j’ai dessiné sur le formulaire un MaskEdBox. Dans le code je mets :


MaskEdBox2.Text = CStr(mMTDEBIT + mMTDEBP) . J’ai le message d’erreur « erreur d’exécution ‘380’. Valeur de propriété non valide ».





En passant par une variable intermédiaire :


mTotDeb = mMTDEBIT + mMTDEBP


MaskEdBox2.Text = CStr(mTotDeb)


J’ai encore le même message





Pour test quand je met MaskEdBox2.Text = "10", j’ai toujours le même message. QUESTION2 : Alors pourquoi ce message et que faire ?





Merci de me venir en aide

MecLome

4 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
15 avril 2005 à 11:45
c'est toi même qui a donné le format.
la moindre des choses c'est de le respecter

MaskEdBox2.Text = "0 000 010"

Daniel
0
meclome Messages postés 10 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 15 avril 2005
15 avril 2005 à 12:26
En essayant MaskEdBox2.Text = "0 000 010", je n'ai plus le message d'erreur mais j'ai des zéro (0) qui s'affiche. Mon but en fait comme je l'ai souligné dans le message, c'est d'avoir les séparateurs de milliers. De plus là tu as pris le cas de test où c'est une constante et dans le cas d'une variable que faire?

MecLome
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
15 avril 2005 à 13:03
je pense que tu auras beaucoup de problème avec ce format, le séparateur de milliers n'étant pas toujours l'espace, je ne sais pas pas comment réagi MaskEditBox mais pour indiquer le séparateur de millier dans un format on emploie la virgule, de plus l'édition de l'espace n'est pas chr$(32) mais chr$(160), ce qui va poser d'énormes problèmes.

Dim var As Integer
Dim s As String


var = 10
s = Format$(var, "0,000,000")
s = Replace(s, Chr$(160), " ")
MaskEdBox1.Text = s

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
15 avril 2005 à 13:32
' le séparateur de milliers
Dim sep As String * 1


Private Sub Form_Load()
' dépend des options régionales
sep = Mid$(Format$(1234, "#,###"), 2, 1)
' MsgBox Asc(sep)
End Sub


Private Sub Command1_Click()
'envoi dans le MaskEdBox
Dim var As Long
Dim s As String

var = 1234567
s = Format$(var, "0,000,000")
s = Replace(s, sep, " ")
MaskEdBox1.Text = s
End Sub


Private Sub Command2_Click()
'reception du MaskEdBox
Dim var As Long
Dim s As String
s = MaskEdBox1.Text
'les caractères non saisis remplacé par des zéros
s = Replace(s, "_", "0")
MsgBox Val(s)
End Sub

Daniel
0
Rejoignez-nous