VBA - Somme de Textbox et IF

ephiso

XLDnaute Nouveau
Bonjour,

Je suis actuellement en train de développer un petit programme sur VBA, et je n'arrive pas à faire fonctionner ce qui suit.

Pour résumer, je voudrais que si la somme de mes textbox est différente de la valeur d'une autre texbox (gain), un message d'erreur s'affiche. Or, le message s'affiche à chaque fois, même lorsque la condition est respectée.

Merci de votre aide,

Sophie

Private Sub CommandButton1_Click()
Dim ligne_active As Integer
ligne_active = ActiveCell.Row

If "Sum[Me.Text_volume.Value;Me.Text_devise.Value;Me.Text_panel.Value;Me.Text_loi.Value;Me.Text_prix.Value]" <> "Me.Text_gain.Value" Then

MsgBox ("Erreur: la somme doit être égale au gain")



Else
.....
 

ephiso

XLDnaute Nouveau
Re : VBA - Somme de Textbox et IF

Ca ne marche toujours pas...
Par contre je n'ai pas vraiment compris l'histoire des décimales... Ca veut dire que les nombres qui sont dans les textbox doivent être en décimales?

Merci en tout cas
Sophie
 

jms31

XLDnaute Junior
Re : VBA - Somme de Textbox et IF

bonjour ephiso

si ce code est exactement ce qu'il y a dans ta feuille, c'est normal que le test soit toujours vrai car tu compare 2 chaines de caractère différentes.

Si tu veux faire l'opération "SUM" il faut utiliser "WorksheetFunction"
Code:
if  WorksheetFunction.Sum(Me.Text_volume.Value,Me.Text_devise.Value,Me.Text_ panel.Value,Me.Text_loi.Value,Me.Text_prix.Value) <> Me.Text_gain.Value Then

bonjour Youky je n'avais pas raffraichi avant de poster
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Somme de Textbox et IF

Bonjour Sophie,
les chiffres en Textbox sont reconnu comme du texte
Exemple 10.25 ne passe pas chez moi... alors que 10,25 passe


Ce code pour obliger un text en numéric(dés l'appuie d'une touche)
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 Select Case KeyAscii
    Case 46                 'Change le point en virgule
        KeyAscii = 44
    Case 44, 48 To 57       'Autorise les touches 0 à 9
    Case Else
        KeyAscii = 0
    End Select
End Sub
 

jms31

XLDnaute Junior
Re : VBA - Somme de Textbox et IF

Il faut modifier la formule en utilisant la fonction CDbl pour les décimaux en gardant les séparateurs régionaux

Code:
if  WorksheetFunction.Sum(CDbl(Me.Text_volume.Value),CDbl(Me.Text_devise.Value),CDbl(Me.Text_ panel.Value),CDbl(Me.Text_loi.Value),CDbl(Me.Text_prix.Value)) <> CDbl(Me.Text_gain.Value) Then
 

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Somme de Textbox et IF

Ca tombe bien alors en voilà un qui marche....
Va voir dans les macros des textbox elles sont identiques
Bonnes chances
A+


PS
Mets le fichier en .XLS et non .XLSM
Beaucoup non pas 2007 moi non plus
 

Pièces jointes

  • essaitextbox.xls
    32 KB · Affichages: 266
  • essaitextbox.xls
    32 KB · Affichages: 295
  • essaitextbox.xls
    32 KB · Affichages: 312
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista