Insertion formule mathématique dans formulaire excel [Résolu]

cs_tiwan 7 Messages postés dimanche 31 octobre 2004Date d'inscription 10 juin 2007 Dernière intervention - 6 juin 2007 à 00:42 - Dernière réponse : cs_tiwan 7 Messages postés dimanche 31 octobre 2004Date d'inscription 10 juin 2007 Dernière intervention
- 8 juin 2007 à 00:29
Bonjour,

J'ai besoin de votre aide pour trouver une soution pour insérer une formule mathématique dans un formulaire excel en vb. Etant ultra débutant, je touche le fond....

Mon souci:
J'ai créé un formulaire sous excel pour gérer mes clients et leur facture. Dans cette macro (userform) je souhaite rajouter une zone de texte qui affiche le résultat d'une formule mathématique avec les 4 dernières données rentrées, sans quitter ce formulaire.

Exemple de mon user form: (calcul du prix final selon les objets du client X)

Client:     Monsieur X
quantité objet A:     3
quantité objet B:     2
quantité objet C:    6
quantité objet D:    8

Prix total:  50 

Le 50 étant le résultant du calcul (3*A)+(2*B)+(6*C)+(8*D)   <= en fait c'est cette formule que je veux introduire dans le formulaire .

Est-ce possible ? J'ai trouvé des .calculte, des R1C1 mais je doute que cela corresponde à ce que je veux faire.
Des solutions ?

Merci d'avance

Tiwan
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 juin 2007 à 01:22
3
Merci
Salut,

en fait, il faut utiliser Formula.
Exemple : place de A1 à A4 les valeurs de 1 à 4, puis dans A5 : = A1+A2+A3+A4
10 sera inscrit.

Sub Exemple()

    MsgBox Range("A5").Value
    MsgBox Range("A5").Formula
    
End Sub

~
<small>[code.aspx?ID =39466 Mortalino] ~
Colorisation automatique</small>
La 1ère MsgBox te sortira 10, la seconde sortira =A1+A2+A3+A4

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA

Merci mortalino 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de mortalino
Meilleure réponse
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 6 juin 2007 à 23:31
3
Merci
Salut,

pour l'affichage de données, un simple Label suffira  ;)
Pour le calcul, c'est à toi de lui faire faire.

Si tes données sont décimales, il faudra employer un CDbl (conversion en Double), si ce sont des entiers, c'est le CLng (conversion en Long)

Exemple :
Admettons, tes 4 valeurs sont dans 4 TextBox, non décimales

LeNouveauLabel.Caption = CLng(TextBoxValeur1.Text) + CLng(TextBoxValeur2.Text) + CLng(TextBoxValeur3.Text) + CLng(TextBoxValeur4.Text)

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA

Merci mortalino 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de mortalino
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 7 juin 2007 à 01:17
1
Merci
Oui, c'est tout à fait possible.

Tu peux faire une fonction.

Private Sub CommandButton1_Click()
    rad.Caption = CLng(objetA.Text) + CLng(objetB.Text) + CLng(objetC.Text) + CLng(objetD.Text)
    rad.BackColor = MyBackColor(CLng(rad.Caption))
End Sub

Private Function MyBackColor(ByVal Valeur As Long) As OLE_COLOR
    MyBackColor = IIf(Valeur >= 40, vbRed, &H8000000F)
End Function

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Commenter la réponse de mortalino
cs_tiwan 7 Messages postés dimanche 31 octobre 2004Date d'inscription 10 juin 2007 Dernière intervention - 6 juin 2007 à 23:07
0
Merci
ok merci c'est la bonne réponse au problème n°1 mais en fait je me suis mal exprimé.


Dans mon userform je saisis différentes données dont les quantités A B C et D.
Sans sortir de ce userform en continuant ma saisie je souhaite voir le résultat automatique d'une opération entre A, B C et D (et non sa formule)dans une case située en dessous. Seulement je ne sais pas quel objet insérer dans le userform pour afficher ce résultat (cadre ? zone de texte, ref edit ?) ni comment faire le calcul sans sortir de ce userform (et sans autre fenetre popup).

Je sais je ne suis pas simple ^^

Merci d'avance de votre aide,

Tiwan
Commenter la réponse de cs_tiwan
cs_tiwan 7 Messages postés dimanche 31 octobre 2004Date d'inscription 10 juin 2007 Dernière intervention - 7 juin 2007 à 00:23
0
Merci
Génial  ça marche !! Merci beaucoup Mortalino

Dans mon cas ce sont des entiers et le calcul est en fait bien plus compliqué qu'une simple addition mais le principe reste le même je pense.

Ca donne pour mon exemple ici:

Private Sub rad_Click()
    rad.Caption = CLng(objetA.Text) + CLng(objetB.Text) + CLng(objetC.Text) + CLng(ObjetD.Text)
End Sub

Et le label créé me renvoit bien la valeur de la somme.

Question subsidiaire (j'avoue ne pas avoir chercher - pas bien)

Il y a t il la possibilité de donner une condition de couleur au label en fonction de la valeur ?
Si par exemple la valeur est supérieure à 40 le fond du label devient rouge ? Je connais le principe sous excel mais pas en vb.
Commenter la réponse de cs_tiwan
cs_tiwan 7 Messages postés dimanche 31 octobre 2004Date d'inscription 10 juin 2007 Dernière intervention - 8 juin 2007 à 00:29
0
Merci
Franchement si je pouvais pogrammer à ton niveau j'en serai fier et mes casses tête  n'existeraient plus ^^

Evidemment ta solution ça marche impeccable !!

Merci encore j'aurai mis des semaines à trouver la bonne réponse.
Commenter la réponse de cs_tiwan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.