OVH Cloud OVH Cloud

Formule dans VBA

7 réponses
Avatar
Jipé
Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit, "#,##0.00")

c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo * LabelPrixUnit,
"#,##0.00")


ça ne passe pas.


Merci pour vos explications.

Jipé

7 réponses

Avatar
isabelle
bonjour Jipé,

le TextBoxKilo retourne probablement une valeur texte (string)
il faut la transformer en numérique.

LabelPrixTotal = Format(TextBoxQuantite * Val(TextBoxKilo) *
LabelPrixUnit, "#,##0.00")

isabelle



Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit, "#,##0.00")

c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo * LabelPrixUnit,
"#,##0.00")

ça ne passe pas.

Merci pour vos explications.

Jipé


Avatar
Jipé
Bonsoir à tous, merci Isabelle,

J'ai omis de signaler que je dois pouvoir calculer de 3 manières différentes
au choix.

1) quantité * prix unitaire
ou
2) kilo * prix unitaire
ou
3) quantité * kilo * prix unitaire

Merci encore
Jipé

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

le TextBoxKilo retourne probablement une valeur texte (string)
il faut la transformer en numérique.

LabelPrixTotal = Format(TextBoxQuantite * Val(TextBoxKilo) *
LabelPrixUnit, "#,##0.00")

isabelle



Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit, "#,##0.00")

c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo * LabelPrixUnit,
"#,##0.00")

ça ne passe pas.

Merci pour vos explications.

Jipé




Avatar
isabelle
bonjour Jipé,

si la valeur retournée par l'objet est une valeur numérique il n'y a pas
de problème à faire une multiplication. mais si c'est une valeur texte,
utilise la fonction de conversion "Val" texte--> numérique

Val, fonction, exemple

MyValue = Val("2457") ' Renvoie 2457.
MyValue = Val(" 2 45 7") ' Renvoie 2457.
MyValue = Val("24 et 57") ' Renvoie 24.


x = Val(TextBoxQuantite.value) * Val(TextBoxKilo.value)

isabelle




Bonsoir à tous, merci Isabelle,

J'ai omis de signaler que je dois pouvoir calculer de 3 manières différentes
au choix.

1) quantité * prix unitaire
ou
2) kilo * prix unitaire
ou
3) quantité * kilo * prix unitaire

Merci encore
Jipé

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

le TextBoxKilo retourne probablement une valeur texte (string)
il faut la transformer en numérique.

LabelPrixTotal = Format(TextBoxQuantite * Val(TextBoxKilo) *
LabelPrixUnit, "#,##0.00")

isabelle



Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit, "#,##0.00")

c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo * LabelPrixUnit,
"#,##0.00")

ça ne passe pas.

Merci pour vos explications.

Jipé






Avatar
Jipé
Bonjour le Forum, bonjour Isabelle,

Cette formule ne fonctionne pas sous VBA, mais est ok dans une cellule de
feuille de calcul.
LabelPrixTotal = Formula [if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]

J'ai essayé: (arrêtez de rire)
LabelPrixTotal = Formula [if(and(Val(TextBoxQuantite)=0,Val(TextBoxKilo)=0),"""",if(Val(TextBoxQuanti
te)=0,Val(TextBoxKilo)*TextBoxPrixUnit,if(Val(TextBoxKilo)=0,Val(TextBoxQuan
tite)*TextBoxPrixUnit,Val(TextBoxQuantite)*Val(TextBoxKilo)*TextBoxPrixUnit)
))]

mais c'est bizarre, ça ne fonctionne pas davantage.
Merci d'avance.
Jean-Pierre


Private Sub TextBoxQuantite_Change()

Dim Chiffre As Double
If TextBoxQuantite = "" Then Exit Sub
On Error GoTo Sortie
Chiffre = TextBoxQuantite
Chiffre = TextBoxKilo
Chiffre = LabelPrixTotal
'LabelPrixTotal = Formula [if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]
LabelPrixTotal = Format(TextBoxPrixUnit * Val(TextBoxQuantite) *
Val(TextBoxKilo), "#,##0.00 ?")
CmdAjoutArticle.Visible = True
Exit Sub
Sortie:
MsgBox "Saisir Uniquement un Entier Numérique"
End Sub

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

si la valeur retournée par l'objet est une valeur numérique il n'y a pas
de problème à faire une multiplication. mais si c'est une valeur texte,
utilise la fonction de conversion "Val" texte--> numérique

Val, fonction, exemple

MyValue = Val("2457") ' Renvoie 2457.
MyValue = Val(" 2 45 7") ' Renvoie 2457.
MyValue = Val("24 et 57") ' Renvoie 24.


x = Val(TextBoxQuantite.value) * Val(TextBoxKilo.value)

isabelle




Bonsoir à tous, merci Isabelle,

J'ai omis de signaler que je dois pouvoir calculer de 3 manières
différentes


au choix.

1) quantité * prix unitaire
ou
2) kilo * prix unitaire
ou
3) quantité * kilo * prix unitaire

Merci encore
Jipé

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

le TextBoxKilo retourne probablement une valeur texte (string)
il faut la transformer en numérique.

LabelPrixTotal = Format(TextBoxQuantite * Val(TextBoxKilo) *
LabelPrixUnit, "#,##0.00")

isabelle



Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit, "#,##0.00")

c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo *
LabelPrixUnit,




"#,##0.00")

ça ne passe pas.

Merci pour vos explications.

Jipé








Avatar
isabelle
là je ne sais plus si TextBoxQuantite, TextBoxKilo, TextBoxPrixUnit,
LabelPrixTotal et LabelPrixUnit sont des noms ( insertion, nom ) ou bien
des objets TextBox et Label mit sur un UserForm ?

isabelle


Bonjour le Forum, bonjour Isabelle,

Cette formule ne fonctionne pas sous VBA, mais est ok dans une cellule de
feuille de calcul.
LabelPrixTotal = Formula > [if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]

J'ai essayé: (arrêtez de rire)
LabelPrixTotal = Formula > [if(and(Val(TextBoxQuantite)=0,Val(TextBoxKilo)=0),"""",if(Val(TextBoxQuanti
te)=0,Val(TextBoxKilo)*TextBoxPrixUnit,if(Val(TextBoxKilo)=0,Val(TextBoxQuan
tite)*TextBoxPrixUnit,Val(TextBoxQuantite)*Val(TextBoxKilo)*TextBoxPrixUnit)
))]

mais c'est bizarre, ça ne fonctionne pas davantage.
Merci d'avance.
Jean-Pierre

Private Sub TextBoxQuantite_Change()

Dim Chiffre As Double
If TextBoxQuantite = "" Then Exit Sub
On Error GoTo Sortie
Chiffre = TextBoxQuantite
Chiffre = TextBoxKilo
Chiffre = LabelPrixTotal
'LabelPrixTotal = Formula > [if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]
LabelPrixTotal = Format(TextBoxPrixUnit * Val(TextBoxQuantite) *
Val(TextBoxKilo), "#,##0.00 ?")
CmdAjoutArticle.Visible = True
Exit Sub
Sortie:
MsgBox "Saisir Uniquement un Entier Numérique"
End Sub

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

si la valeur retournée par l'objet est une valeur numérique il n'y a pas
de problème à faire une multiplication. mais si c'est une valeur texte,
utilise la fonction de conversion "Val" texte--> numérique

Val, fonction, exemple

MyValue = Val("2457") ' Renvoie 2457.
MyValue = Val(" 2 45 7") ' Renvoie 2457.
MyValue = Val("24 et 57") ' Renvoie 24.


x = Val(TextBoxQuantite.value) * Val(TextBoxKilo.value)

isabelle




Bonsoir à tous, merci Isabelle,

J'ai omis de signaler que je dois pouvoir calculer de 3 manières
différentes


au choix.

1) quantité * prix unitaire
ou
2) kilo * prix unitaire
ou
3) quantité * kilo * prix unitaire

Merci encore
Jipé

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

le TextBoxKilo retourne probablement une valeur texte (string)
il faut la transformer en numérique.

LabelPrixTotal = Format(TextBoxQuantite * Val(TextBoxKilo) *
LabelPrixUnit, "#,##0.00")

isabelle



Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit, "#,##0.00")

c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo *
LabelPrixUnit,




"#,##0.00")

ça ne passe pas.

Merci pour vos explications.

Jipé










Avatar
Jipé
Re Isabelle,

En effet il s'agit bien d'une UserForm.
TextBoxPrixUnit (est rempli automatiquement lorsqu'on clique sur un produit
dans une listbox).
TextBoxQuantite (peut ne pas être rempli, dans ce cas il faut alimenter
TextBoxKilo ).
TextBoxKilo (peut ne pas être rempli dans ce cas il faut alimenter
TextBoxQuantite ).
LabelPrixTotal
"if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))"

TextBoxQuantite et TextBoxKilo peuvent être remplis tous les deux.

Pour un produit facturé, je peux avoir:
1) quantité * prix unitaire = Prix total
ou
2) kilo * prix unitaire = Prix total
ou
3) quantité * kilo * prix unitaire = Prix total

J'espère que c'est plus clair.
Jean-Pierre

"isabelle" a écrit dans le message de
news:
là je ne sais plus si TextBoxQuantite, TextBoxKilo, TextBoxPrixUnit,
LabelPrixTotal et LabelPrixUnit sont des noms ( insertion, nom ) ou bien
des objets TextBox et Label mit sur un UserForm ?

isabelle


Bonjour le Forum, bonjour Isabelle,

Cette formule ne fonctionne pas sous VBA, mais est ok dans une cellule
de


feuille de calcul.
LabelPrixTotal = Formula > >
[if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]



J'ai essayé: (arrêtez de rire)
LabelPrixTotal = Formula > >
[if(and(Val(TextBoxQuantite)=0,Val(TextBoxKilo)=0),"""",if(Val(TextBoxQuanti



te)=0,Val(TextBoxKilo)*TextBoxPrixUnit,if(Val(TextBoxKilo)=0,Val(TextBoxQuan



tite)*TextBoxPrixUnit,Val(TextBoxQuantite)*Val(TextBoxKilo)*TextBoxPrixUnit)


))]

mais c'est bizarre, ça ne fonctionne pas davantage.
Merci d'avance.
Jean-Pierre

Private Sub TextBoxQuantite_Change()

Dim Chiffre As Double
If TextBoxQuantite = "" Then Exit Sub
On Error GoTo Sortie
Chiffre = TextBoxQuantite
Chiffre = TextBoxKilo
Chiffre = LabelPrixTotal
'LabelPrixTotal = Formula > >
[if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]


LabelPrixTotal = Format(TextBoxPrixUnit * Val(TextBoxQuantite) *
Val(TextBoxKilo), "#,##0.00 ?")
CmdAjoutArticle.Visible = True
Exit Sub
Sortie:
MsgBox "Saisir Uniquement un Entier Numérique"
End Sub

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

si la valeur retournée par l'objet est une valeur numérique il n'y a
pas



de problème à faire une multiplication. mais si c'est une valeur
texte,



utilise la fonction de conversion "Val" texte--> numérique

Val, fonction, exemple

MyValue = Val("2457") ' Renvoie 2457.
MyValue = Val(" 2 45 7") ' Renvoie 2457.
MyValue = Val("24 et 57") ' Renvoie 24.


x = Val(TextBoxQuantite.value) * Val(TextBoxKilo.value)

isabelle




Bonsoir à tous, merci Isabelle,

J'ai omis de signaler que je dois pouvoir calculer de 3 manières
différentes


au choix.

1) quantité * prix unitaire
ou
2) kilo * prix unitaire
ou
3) quantité * kilo * prix unitaire

Merci encore
Jipé

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

le TextBoxKilo retourne probablement une valeur texte (string)
il faut la transformer en numérique.

LabelPrixTotal = Format(TextBoxQuantite * Val(TextBoxKilo) *
LabelPrixUnit, "#,##0.00")

isabelle



Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit,
"#,##0.00")







c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo *
LabelPrixUnit,




"#,##0.00")

ça ne passe pas.

Merci pour vos explications.

Jipé












Avatar
isabelle
bonjour Jipé,

au début de se fil tu as dit que la commande suivante fonctionnait,
LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit, "#,##0.00")

je suis très surprise que cela fonctionne car tu fais une multiplication
de valeur texte,
amha il faudrait mettre :
LabelPrixTotal.Caption = Format(Val(TextBoxQuantite.Value) *
Val(LabelPrixUnit.Value), "#,##0.00")

et de même pour tout les autres calcul utilisant une valeur de textbox.

isabelle


Re Isabelle,

En effet il s'agit bien d'une UserForm.
TextBoxPrixUnit (est rempli automatiquement lorsqu'on clique sur un produit
dans une listbox).
TextBoxQuantite (peut ne pas être rempli, dans ce cas il faut alimenter
TextBoxKilo ).
TextBoxKilo (peut ne pas être rempli dans ce cas il faut alimenter
TextBoxQuantite ).
LabelPrixTotal
"if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))"

TextBoxQuantite et TextBoxKilo peuvent être remplis tous les deux.

Pour un produit facturé, je peux avoir:
1) quantité * prix unitaire = Prix total
ou
2) kilo * prix unitaire = Prix total
ou
3) quantité * kilo * prix unitaire = Prix total

J'espère que c'est plus clair.
Jean-Pierre

"isabelle" a écrit dans le message de
news:
là je ne sais plus si TextBoxQuantite, TextBoxKilo, TextBoxPrixUnit,
LabelPrixTotal et LabelPrixUnit sont des noms ( insertion, nom ) ou bien
des objets TextBox et Label mit sur un UserForm ?

isabelle


Bonjour le Forum, bonjour Isabelle,

Cette formule ne fonctionne pas sous VBA, mais est ok dans une cellule
de


feuille de calcul.
LabelPrixTotal = Formula > > >
[if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]



J'ai essayé: (arrêtez de rire)
LabelPrixTotal = Formula > > >
[if(and(Val(TextBoxQuantite)=0,Val(TextBoxKilo)=0),"""",if(Val(TextBoxQuanti



te)=0,Val(TextBoxKilo)*TextBoxPrixUnit,if(Val(TextBoxKilo)=0,Val(TextBoxQuan



tite)*TextBoxPrixUnit,Val(TextBoxQuantite)*Val(TextBoxKilo)*TextBoxPrixUnit)


))]

mais c'est bizarre, ça ne fonctionne pas davantage.
Merci d'avance.
Jean-Pierre

Private Sub TextBoxQuantite_Change()

Dim Chiffre As Double
If TextBoxQuantite = "" Then Exit Sub
On Error GoTo Sortie
Chiffre = TextBoxQuantite
Chiffre = TextBoxKilo
Chiffre = LabelPrixTotal
'LabelPrixTotal = Formula > > >
[if(and(B27=0,C27=0),"""",if(B27=0,C27*G27,if(C27=0,B27*G27,B27*C27*G27)))]


LabelPrixTotal = Format(TextBoxPrixUnit * Val(TextBoxQuantite) *
Val(TextBoxKilo), "#,##0.00 ?")
CmdAjoutArticle.Visible = True
Exit Sub
Sortie:
MsgBox "Saisir Uniquement un Entier Numérique"
End Sub

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

si la valeur retournée par l'objet est une valeur numérique il n'y a
pas



de problème à faire une multiplication. mais si c'est une valeur
texte,



utilise la fonction de conversion "Val" texte--> numérique

Val, fonction, exemple

MyValue = Val("2457") ' Renvoie 2457.
MyValue = Val(" 2 45 7") ' Renvoie 2457.
MyValue = Val("24 et 57") ' Renvoie 24.


x = Val(TextBoxQuantite.value) * Val(TextBoxKilo.value)

isabelle




Bonsoir à tous, merci Isabelle,

J'ai omis de signaler que je dois pouvoir calculer de 3 manières
différentes


au choix.

1) quantité * prix unitaire
ou
2) kilo * prix unitaire
ou
3) quantité * kilo * prix unitaire

Merci encore
Jipé

"isabelle" a écrit dans le message de
news:
bonjour Jipé,

le TextBoxKilo retourne probablement une valeur texte (string)
il faut la transformer en numérique.

LabelPrixTotal = Format(TextBoxQuantite * Val(TextBoxKilo) *
LabelPrixUnit, "#,##0.00")

isabelle



Bonsoir le Forum,

si j"écris:

LabelPrixTotal = Format(TextBoxQuantite * LabelPrixUnit,
"#,##0.00")







c'est OK.

mais:

LabelPrixTotal = Format(TextBoxQuantite * TextBoxKilo *
LabelPrixUnit,




"#,##0.00")

ça ne passe pas.

Merci pour vos explications.

Jipé