Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel

Advertisement

Réponse
 
LinkBack Outils de la discussion
Vieux 30/06/2009, 06h15   #1 (permalink)
XLDnaute Occasionel
 
Date d'inscription: août 2006
Messages: 138
Par défaut Opération entre plusieurs textbox (addition et multiplication)

Bonjour le forum,

merci d'avance à celui ou celle qui pourra m'aider à cette heure matinale.


je cherche à réaliser l'opération suivante entre différentes TEXTBOX.

TEXTBOX6=CDbl(TextBox1.Value) + CDbl(TextBox2.Value) * 100 / CDbl(TextBox3.Value) + CDbl(TextBox4.Value)

Pour exemple le résultat devrait être :

ex: Textbox6= (10 + 10)*100 / (50 + 50 ) = 20

Il doit y avoir une subtilité.

Merci d'avance pour votre aide

Bonne journée

DAVIDP
davidp est déconnecté   Réponse avec citation
ANNONCES
Vieux 30/06/2009, 08h02   #2 (permalink)
JNP
XLDnaute Barbatruc
 
Avatar de JNP
 
Date d'inscription: août 2007
Localisation: Vosges _______ Seven - Excel 2007
Messages: 2 610
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

Bonjour DavidP ,
Effectivement, il y a plusieurs subtilités :
1) Les textboxs vides ne sont pas assimilés à 0
2) Tu divises par 0 si 3 et 4 sont vides
Teste ce code à adapter, et tu comprendras mieux
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TEXTBOX6 = CDbl(TextBox1.Value) + CDbl(TextBox2.Value) * 100 / (CDbl(TextBox3.Value) + CDbl(TextBox4.Value))
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TEXTBOX6 = CDbl(TextBox1.Value) + CDbl(TextBox2.Value) * 100 / (CDbl(TextBox3.Value) + CDbl(TextBox4.Value))
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TEXTBOX6 = CDbl(TextBox1.Value) + CDbl(TextBox2.Value) * 100 / (CDbl(TextBox3.Value) + CDbl(TextBox4.Value))
End Sub
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TEXTBOX6 = CDbl(TextBox1.Value) + CDbl(TextBox2.Value) * 100 / (CDbl(TextBox3.Value) + CDbl(TextBox4.Value))
End Sub
Private Sub UserForm_Initialize()
TextBox1 = 0
TextBox2 = 0
TextBox3 = 1
TextBox4 = 1
End Sub
D'un autre côté, tu as intérêt à vérifier que tes textbox sont des nombres, et bien avec une "," et non un "."... Quelques tests en perspective ! Utilise par exemple un Replace sur l'événement Change pour remplacer les ".".
Bonne journée
__________________
« Donnez-moi un point d'appui et je soulèverai le monde » Archimède
« L'important, ce n'est pas de savoir se servir des outils, c'est de savoir que les outils existent » JNP
http://jnp63.labrute.fr
JNP est déconnecté   Réponse avec citation
Vieux 30/06/2009, 08h16   #3 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: mai 2008
Localisation: Paris
Messages: 4 869
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

Bonjour davidp, JNP

Comme ça, le matin ça réveille :

Code:
Private Sub CommandButton1_Click()
Dim d As Double
d = Val(Replace(TextBox3, ",", ".")) + Val(Replace(TextBox4, ",", "."))
If d = 0 Then d = 1
TextBox6 = (Val(Replace(TextBox1, ",", ".")) + Val(Replace(TextBox2, ",", "."))) * 100 / d
End Sub
3 subtilités :

- remplacer les virgules dans les TextBox par un point et utiliser Val, on obtient ainsi toujours des nombres

- quand le dénominateur est nul, le remplacer par 1 pour éviter la division par 0 (VBA n'aime pas)

- mettre des parenthèses au bon endroit.

A+
job75 est déconnecté   Réponse avec citation
Vieux 30/06/2009, 09h09   #4 (permalink)
XLDnaute Occasionel
 
Date d'inscription: août 2006
Messages: 138
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

Bonjour Job75 et JNP,

Tout d'abord un Grand Merci car je ne risquais pas de trouver la solution tout seul.

je suis maintenant au travail , et je vais tester ce soir .

Je vous tiens au courant

A ce soir

Un GRAND MERCI .....
DAVID P
davidp est déconnecté   Réponse avec citation
Vieux 01/07/2009, 11h44   #5 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: mai 2008
Localisation: Paris
Messages: 4 869
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

Bonjour davidp, le fil, le forum,

Un petit complément pour obliger l'entrée d'une valeur numérique dans une TextBox :

Code:
Private Sub TextBox1_Change()
If Not (IsNumeric(Replace(TextBox1, ",", ".")) _
  Or IsNumeric(Replace(TextBox1, ".", ","))) Then TextBox1 = ""
End Sub
Fonctionne quel que soit le séparateur décimal utilisé par l'ordi.

A+
job75 est déconnecté   Réponse avec citation
Vieux 03/07/2009, 22h31   #6 (permalink)
XLDnaute Occasionel
 
Date d'inscription: août 2006
Messages: 138
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

Bonjour Job75,JNP ,le forum

Désolé pour le retard, un Grand Merci, j'ai adapté tout ceci dans mon programme.

Tout fonctionne à merveille.

Dommage que je ne dispose de pas + de temps car on apprend énormément grace à ce forum.

A Bientôt et Merci

DavidP
davidp est déconnecté   Réponse avec citation
Vieux 04/07/2009, 02h10   #7 (permalink)
XLDnaute Occasionel
 
Avatar de justine
 
Date d'inscription: novembre 2005
Localisation: ile de beauté
Messages: 456
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

bonsoir a tous
pour revenir aux petits probleme de math il est normal que tu ne trouves pas le bon resultat
tu ecris:
TEXTBOX6=CDbl(TextBox1.Value) + CDbl(TextBox2.Value) * 100 / CDbl(TextBox3.Value) + CDbl(TextBox4.Value)

Pour exemple le résultat devrait être :

ex: Textbox6= (10 + 10)*100 / (50 + 50 ) = 20

or ta combinaison permet de trouver le resultat 60.002

il faut penser a respecter les priorités arithmetiques
si je me fie a ton exemple, pense a mettre des parentheses

TEXTBOX6=(CDbl(TextBox1.Value) + CDbl(TextBox2.Value)) * 100 / (CDbl(TextBox3.Value) + CDbl(TextBox4.Value))

bonne continuation
__________________
au plaisir
Pour ceux qui aiment ecouter la radio devant le PC, c'est ici
justine est déconnecté   Réponse avec citation
Vieux 04/07/2009, 07h02   #8 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: mai 2008
Localisation: Paris
Messages: 4 869
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

Bonjour le fil, le forum,

@ justine eh oui, j'ai bien dit :

Citation:
Envoyé par job75 Voir le message
3 subtilités :

(...)

- mettre des parenthèses au bon endroit.
Mais je pense que chez David c'était un simple oubli, faut pas en faire tout un plat...

A+
job75 est déconnecté   Réponse avec citation
Vieux 14/07/2009, 22h49   #9 (permalink)
XLDnaute Occasionel
 
Date d'inscription: août 2006
Messages: 138
Par défaut Re : Opération entre plusieurs textbox (addition et multiplication)

Bonsoir le forum,

merci pour l'info , j'ai encore appris

A bientôt

DAVIDO
davidp est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
multiplication dans textbox gds35 Forum Excel 16 11/12/2008 13h27
Opération sur plusieurs textbox benoua Forum Excel 5 28/07/2008 17h54
multiplication dans textbox brewen Forum Excel 2 23/09/2007 23h31
Bug pour addition de plusieurs textbox psykofab Forum Excel 3 18/11/2005 14h27
Opération sur textbox titou Forum Excel Downloads - Archives 2 06/08/2003 18h46


Fuseau horaire GMT +2. Il est actuellement 08h00.


(C) 2006 Excel Downloads