OVH Cloud OVH Cloud

Multiplication pour 3 TextBox et 1 Label

5 réponses
Avatar
Jipé
Bonjour le Forum,

j'ai déjà posé la question, aussi, cette fois, je reformule en espérant être
plus clair.

Dans une UserForm, j'ai 3 TextBox et 1 Label.

Je souhaite récupérer dans le Label, le résultat de la multiplication de
TextBox1 par TextBox2 par TextBox3.

TextBox3 et le Label ont le format "0,00 ?".

Pour détailler:
---Si TextBox1 est vide, je multiplie TextBox2 par TextBox3.
---Si TextBox2 est vide, je multiplie TextBox1 par TextBox3.

---Autrement, je multiplie TextBox1 par TextBox2 par TextBox3.

Merci pour votre aide.
Jipé

5 réponses

Avatar
Pascal Engelmajer
Salut,
With UserForm1
.Label1.Caption = _
IIf(Val(.TextBox1.Value) <> 0, Val(.TextBox1.Value), 1) _
* IIf(Val(.TextBox2.Value) <> 0, Val(.TextBox2.Value), 1) _
* IIf(Val(.TextBox3.Value) <> 0, Val(.TextBox3.Value), 1)
End With
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:
eGxEbSg#
Bonjour le Forum,

j'ai déjà posé la question, aussi, cette fois, je reformule en espérant
être

plus clair.

Dans une UserForm, j'ai 3 TextBox et 1 Label.

Je souhaite récupérer dans le Label, le résultat de la multiplication de
TextBox1 par TextBox2 par TextBox3.

TextBox3 et le Label ont le format "0,00 ?".

Pour détailler:
---Si TextBox1 est vide, je multiplie TextBox2 par TextBox3.
---Si TextBox2 est vide, je multiplie TextBox1 par TextBox3.

---Autrement, je multiplie TextBox1 par TextBox2 par TextBox3.

Merci pour votre aide.
Jipé




Avatar
michdenis
Bonjour Jipé,

'-----------------------
Private Sub CommandButton1_Click()

Dim Arr(), A As Double
Arr = Array("Textbox1", "Textbox2", "Textbox3")

A = 1
For Each elt In Arr
If IsNumeric(Me.Controls(elt)) Then
A = A * CDbl(Me.Controls(elt))
End If
Next
Me.Label1 = Format(A, "# ##0.00")

End Sub
'-----------------------


Salutations!



"Jipé" a écrit dans le message de news:eGxEbSg%
Bonjour le Forum,

j'ai déjà posé la question, aussi, cette fois, je reformule en espérant être
plus clair.

Dans une UserForm, j'ai 3 TextBox et 1 Label.

Je souhaite récupérer dans le Label, le résultat de la multiplication de
TextBox1 par TextBox2 par TextBox3.

TextBox3 et le Label ont le format "0,00 ?".

Pour détailler:
---Si TextBox1 est vide, je multiplie TextBox2 par TextBox3.
---Si TextBox2 est vide, je multiplie TextBox1 par TextBox3.

---Autrement, je multiplie TextBox1 par TextBox2 par TextBox3.

Merci pour votre aide.
Jipé
Avatar
Jipé
Re bonjour,
MichDenis "elt" fait un problème.
Pascal, ton code fonctionne, mais j'ai tout de même un souci.
---Dans le Label de la UserForm, le résultat de la multiplication est
correct. Mais sur la feuille de calcul, je n'ai aucun résultat.
---Dans "TextBoxPrixUnit", si la valeur est "11,70", les décimales ne sont
pas prises en compte. Ca multiplie par 11.

J'ai placé ton code comme ceci:

Private Sub CmdAjouter_Click()

Dim LabelPrixTotal As Currency

DerLigne = Sheets(1).Range("A55").End(xlUp).Row + 2

TextBoxQuantite = Format(Val(TextBoxQuantite.Value)) ', "#,##0.00")
TextBoxKilo = Format(Val(TextBoxKilo.Value)) ', "#,##0.00")
TextBoxPrixUnit = Format(Val(TextBoxPrixUnit.Value), "#,##0.00")

With UserForm1
.LabelPrixTotal.Caption = _
IIf(Val(.TextBoxQuantite.Value) <> 0, Val(.TextBoxQuantite.Value),
1) _
* IIf(Val(.TextBoxKilo.Value) <> 0, Val(.TextBoxKilo.Value), 1) _
* IIf(Val(.TextBoxPrixUnit.Value) <> 0, Val(.TextBoxPrixUnit.Value),
1)
End With

With Sheets(1)

.Range("F15") = ListBox1 'Société

.Range("G6") = TextBox1 'N° de Facture
.Range("B16") = TextBox2 'N° Client
.Range("C18") = TextBox3 'Date
.Range("C19") = TextBox4 'Réf Client
.Range("C20") = TextBox5 'Règlement
.Range("C21") = TextBox6 'Nb Fac
.Range("C22") = TextBox7 'Echéance
.Range("C23") = TextBox8 'BL N°
.Range("F16") = TextBox10 'Service
.Range("F17") = TextBox11 'Adresse
.Range("F18") = TextBox12 'Code Postal
.Range("G18") = TextBox13 'Ville
.Range("E22") = TextBox14 'Adresse de livraison

.Range("A" & DerLigne) = LabelCode
.Range("B" & DerLigne) = TextBoxQuantite
.Range("C" & DerLigne) = TextBoxKilo
.Range("D" & DerLigne) = CbxProduits
.Range("G" & DerLigne) = TextBoxPrixUnit
.Range("H" & DerLigne) = LabelPrixTotal

.Range("G58").Formula = "=sum(H27:H55)"

If DerLigne = 55 Then
MsgBox "Vous êtes arrivés à la dernière ligne de la facture"
End If

End With

CmdAjouter.Visible = False

'Unload UserForm1
End Sub

Merci Jipé

"Pascal Engelmajer" a écrit dans le
message de news:%23Giqukg%
Salut,
With UserForm1
.Label1.Caption = _
IIf(Val(.TextBox1.Value) <> 0, Val(.TextBox1.Value), 1) _
* IIf(Val(.TextBox2.Value) <> 0, Val(.TextBox2.Value), 1) _
* IIf(Val(.TextBox3.Value) <> 0, Val(.TextBox3.Value), 1)
End With
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:
eGxEbSg#
Bonjour le Forum,

j'ai déjà posé la question, aussi, cette fois, je reformule en espérant
être

plus clair.

Dans une UserForm, j'ai 3 TextBox et 1 Label.

Je souhaite récupérer dans le Label, le résultat de la multiplication de
TextBox1 par TextBox2 par TextBox3.

TextBox3 et le Label ont le format "0,00 ?".

Pour détailler:
---Si TextBox1 est vide, je multiplie TextBox2 par TextBox3.
---Si TextBox2 est vide, je multiplie TextBox1 par TextBox3.

---Autrement, je multiplie TextBox1 par TextBox2 par TextBox3.

Merci pour votre aide.
Jipé








Avatar
michdenis
Bonjour Jipé,

Si dans le haut du module, tu as ceci :

Option Explicit


Toutes les variables doivent être déclaré comme ceci :


Private Sub CommandButton1_Click()

Dim Arr(), A As Double, Elt As Variant
Arr = Array("Textbox1", "Textbox2", "Textbox3")

A = 1
For Each Elt In Arr
If IsNumeric(Me.Controls(Elt)) Then
A = A * CDbl(Me.Controls(Elt))
End If
Next
Me.Label1 = Format(A, "# ##0.00")

End Sub


Salutations!




"Jipé" a écrit dans le message de news:eGOcxbh%
Re bonjour,
MichDenis "elt" fait un problème.
Pascal, ton code fonctionne, mais j'ai tout de même un souci.
---Dans le Label de la UserForm, le résultat de la multiplication est
correct. Mais sur la feuille de calcul, je n'ai aucun résultat.
---Dans "TextBoxPrixUnit", si la valeur est "11,70", les décimales ne sont
pas prises en compte. Ca multiplie par 11.

J'ai placé ton code comme ceci:

Private Sub CmdAjouter_Click()

Dim LabelPrixTotal As Currency

DerLigne = Sheets(1).Range("A55").End(xlUp).Row + 2

TextBoxQuantite = Format(Val(TextBoxQuantite.Value)) ', "#,##0.00")
TextBoxKilo = Format(Val(TextBoxKilo.Value)) ', "#,##0.00")
TextBoxPrixUnit = Format(Val(TextBoxPrixUnit.Value), "#,##0.00")

With UserForm1
.LabelPrixTotal.Caption = _
IIf(Val(.TextBoxQuantite.Value) <> 0, Val(.TextBoxQuantite.Value),
1) _
* IIf(Val(.TextBoxKilo.Value) <> 0, Val(.TextBoxKilo.Value), 1) _
* IIf(Val(.TextBoxPrixUnit.Value) <> 0, Val(.TextBoxPrixUnit.Value),
1)
End With

With Sheets(1)

.Range("F15") = ListBox1 'Société

.Range("G6") = TextBox1 'N° de Facture
.Range("B16") = TextBox2 'N° Client
.Range("C18") = TextBox3 'Date
.Range("C19") = TextBox4 'Réf Client
.Range("C20") = TextBox5 'Règlement
.Range("C21") = TextBox6 'Nb Fac
.Range("C22") = TextBox7 'Echéance
.Range("C23") = TextBox8 'BL N°
.Range("F16") = TextBox10 'Service
.Range("F17") = TextBox11 'Adresse
.Range("F18") = TextBox12 'Code Postal
.Range("G18") = TextBox13 'Ville
.Range("E22") = TextBox14 'Adresse de livraison

.Range("A" & DerLigne) = LabelCode
.Range("B" & DerLigne) = TextBoxQuantite
.Range("C" & DerLigne) = TextBoxKilo
.Range("D" & DerLigne) = CbxProduits
.Range("G" & DerLigne) = TextBoxPrixUnit
.Range("H" & DerLigne) = LabelPrixTotal

.Range("G58").Formula = "=sum(H27:H55)"

If DerLigne = 55 Then
MsgBox "Vous êtes arrivés à la dernière ligne de la facture"
End If

End With

CmdAjouter.Visible = False

'Unload UserForm1
End Sub

Merci Jipé

"Pascal Engelmajer" a écrit dans le
message de news:%23Giqukg%
Salut,
With UserForm1
.Label1.Caption = _
IIf(Val(.TextBox1.Value) <> 0, Val(.TextBox1.Value), 1) _
* IIf(Val(.TextBox2.Value) <> 0, Val(.TextBox2.Value), 1) _
* IIf(Val(.TextBox3.Value) <> 0, Val(.TextBox3.Value), 1)
End With
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:
eGxEbSg#
Bonjour le Forum,

j'ai déjà posé la question, aussi, cette fois, je reformule en espérant
être

plus clair.

Dans une UserForm, j'ai 3 TextBox et 1 Label.

Je souhaite récupérer dans le Label, le résultat de la multiplication de
TextBox1 par TextBox2 par TextBox3.

TextBox3 et le Label ont le format "0,00 ?".

Pour détailler:
---Si TextBox1 est vide, je multiplie TextBox2 par TextBox3.
---Si TextBox2 est vide, je multiplie TextBox1 par TextBox3.

---Autrement, je multiplie TextBox1 par TextBox2 par TextBox3.

Merci pour votre aide.
Jipé








Avatar
Jipé
Bonsoir MichDenis,

Ton code fonctionne à merveille en ce qui concerne le calcul. Merci, merci,
merci.....................
J'ai un autre souci, mais je lance un nouveau fil.
Merci encore
Jipé

"michdenis" a écrit dans le message de
news:eioHLhh%
Bonjour Jipé,

Si dans le haut du module, tu as ceci :

Option Explicit


Toutes les variables doivent être déclaré comme ceci :


Private Sub CommandButton1_Click()

Dim Arr(), A As Double, Elt As Variant
Arr = Array("Textbox1", "Textbox2", "Textbox3")

A = 1
For Each Elt In Arr
If IsNumeric(Me.Controls(Elt)) Then
A = A * CDbl(Me.Controls(Elt))
End If
Next
Me.Label1 = Format(A, "# ##0.00")

End Sub


Salutations!




"Jipé" a écrit dans le message de
news:eGOcxbh%

Re bonjour,
MichDenis "elt" fait un problème.
Pascal, ton code fonctionne, mais j'ai tout de même un souci.
---Dans le Label de la UserForm, le résultat de la multiplication est
correct. Mais sur la feuille de calcul, je n'ai aucun résultat.
---Dans "TextBoxPrixUnit", si la valeur est "11,70", les décimales ne sont
pas prises en compte. Ca multiplie par 11.

J'ai placé ton code comme ceci:

Private Sub CmdAjouter_Click()

Dim LabelPrixTotal As Currency

DerLigne = Sheets(1).Range("A55").End(xlUp).Row + 2

TextBoxQuantite = Format(Val(TextBoxQuantite.Value)) ', "#,##0.00")
TextBoxKilo = Format(Val(TextBoxKilo.Value)) ', "#,##0.00")
TextBoxPrixUnit = Format(Val(TextBoxPrixUnit.Value), "#,##0.00")

With UserForm1
.LabelPrixTotal.Caption = _
IIf(Val(.TextBoxQuantite.Value) <> 0, Val(.TextBoxQuantite.Value),
1) _
* IIf(Val(.TextBoxKilo.Value) <> 0, Val(.TextBoxKilo.Value), 1) _
* IIf(Val(.TextBoxPrixUnit.Value) <> 0,
Val(.TextBoxPrixUnit.Value),

1)
End With

With Sheets(1)

.Range("F15") = ListBox1 'Société

.Range("G6") = TextBox1 'N° de Facture
.Range("B16") = TextBox2 'N° Client
.Range("C18") = TextBox3 'Date
.Range("C19") = TextBox4 'Réf Client
.Range("C20") = TextBox5 'Règlement
.Range("C21") = TextBox6 'Nb Fac
.Range("C22") = TextBox7 'Echéance
.Range("C23") = TextBox8 'BL N°
.Range("F16") = TextBox10 'Service
.Range("F17") = TextBox11 'Adresse
.Range("F18") = TextBox12 'Code Postal
.Range("G18") = TextBox13 'Ville
.Range("E22") = TextBox14 'Adresse de livraison

.Range("A" & DerLigne) = LabelCode
.Range("B" & DerLigne) = TextBoxQuantite
.Range("C" & DerLigne) = TextBoxKilo
.Range("D" & DerLigne) = CbxProduits
.Range("G" & DerLigne) = TextBoxPrixUnit
.Range("H" & DerLigne) = LabelPrixTotal

.Range("G58").Formula = "=sum(H27:H55)"

If DerLigne = 55 Then
MsgBox "Vous êtes arrivés à la dernière ligne de la facture"
End If

End With

CmdAjouter.Visible = False

'Unload UserForm1
End Sub

Merci Jipé

"Pascal Engelmajer" a écrit dans le
message de news:%23Giqukg%
Salut,
With UserForm1
.Label1.Caption = _
IIf(Val(.TextBox1.Value) <> 0, Val(.TextBox1.Value), 1) _
* IIf(Val(.TextBox2.Value) <> 0, Val(.TextBox2.Value), 1) _
* IIf(Val(.TextBox3.Value) <> 0, Val(.TextBox3.Value), 1)
End With
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jipé" a écrit dans le message de news:
eGxEbSg#
Bonjour le Forum,

j'ai déjà posé la question, aussi, cette fois, je reformule en
espérant



être
plus clair.

Dans une UserForm, j'ai 3 TextBox et 1 Label.

Je souhaite récupérer dans le Label, le résultat de la multiplication
de



TextBox1 par TextBox2 par TextBox3.

TextBox3 et le Label ont le format "0,00 ?".

Pour détailler:
---Si TextBox1 est vide, je multiplie TextBox2 par TextBox3.
---Si TextBox2 est vide, je multiplie TextBox1 par TextBox3.

---Autrement, je multiplie TextBox1 par TextBox2 par TextBox3.

Merci pour votre aide.
Jipé