Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion nicos3390
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nicos3390

XLDnaute Junior
Bonjour à tous,

dans mon userform, je souhaite multiplier 2 Textbox et obtenir un résultats en €.

TextBox7 = Format(TextBox7, "0.00%")
et
Textbox20 est un montant saisi

Je souhaite que ma textbox 6 multiplie ces 2 valeurs:

Me.TextBox6.Value = (Val(TextBox7.Value) / 100) * Val(TextBox20.Value)

Cependant en utilisant cette formule, si la valeur de la textbox 7 est de 0.15% alors le résultat donnera 0 car cette formule ne tient pas compte des chiffres après la virgule ...

pouvez-vous m'éclairer?
 
Re : Calcul textbox

Bonjour
Essayez CDbl à la place de Val
Mais c'est plus compliqué à cause du "%".
Mettez une fonction ValFrm qui recalcule du numérique à partir de vos textes formatés.
VB:
Sub test()
Const V1 = 123, V2 = 0.1
Dim Z1 As String, Z2 As String
Z1 = Format(V1, "0.00")
Z2 = Format(V2, "0.00%")
MsgBox """" & Z1 & """ * """ & Z2 & """ = " & ValFrm(Z1) * ValFrm(Z2)
End Sub


Function ValFrm(ByVal Txt As String) As Double
If Txt Like "*%" Then
   ValFrm = CDbl(Replace(Txt, "%", "")) / 100
Else
   ValFrm = CDbl(Txt)
   End If
End Function
À +
 
Re : Calcul textbox

Bonjour à tous,

Une solution avec ce code dans l'USF :

Code:
Private Sub TextBox7_Change()
Dim t$
t = Replace(Replace(TextBox7, "%", ""), ",", ".")
TextBox7 = Val(t) & IIf(Right(t, 1) = ".", Mid(0.1, 2, 1), "") & "%"
TextBox7.SelStart = Len(TextBox7) - 1
TextBox6 = Format(Val(Replace(Replace(TextBox7, "%", ""), ",", ".")) * Val(Replace(TextBox20, ",", ".")) / 100, "0.00 €")
End Sub

Private Sub TextBox20_Change()
Dim t$
t = Replace(Replace(TextBox20, "%", ""), ",", ".")
TextBox20 = Val(t) & IIf(Right(t, 1) = ".", Mid(0.1, 2, 1), "")
TextBox6 = Format(Val(Replace(Replace(TextBox7, "%", ""), ",", ".")) * Val(Replace(TextBox20, ",", ".")) / 100, "0.00 €")
End Sub
On peut utiliser la virgule ou le point comme séparateur décimal.

Fichier joint.

A+
 

Pièces jointes

Re : Calcul textbox

Re,

Avec 2 variables mémorisées c'est plus simple :

Code:
Dim t1$, t2$ 'mémorise les variables

Private Sub TextBox7_Change()
t1 = Replace(Replace(TextBox7, "%", ""), ",", ".")
TextBox7 = Val(t1) & IIf(Right(t1, 1) = ".", Mid(0.1, 2, 1), "") & "%"
TextBox7.SelStart = Len(TextBox7) - 1
TextBox6 = Format(Val(t1) * Val(t2) / 100, "0.00 €")
End Sub

Private Sub TextBox20_Change()
t2 = Replace(Replace(TextBox20, "%", ""), ",", ".")
TextBox20 = Val(t2) & IIf(Right(t2, 1) = ".", Mid(0.1, 2, 1), "")
TextBox6 = Format(Val(t1) * Val(t2) / 100, "0.00 €")
End Sub
Fichier (2)

A+
 

Pièces jointes

Re : Calcul textbox

Oui, mais avec ma fonction dans un coin on ne se pose plus tellement de questions:
VB:
Me.TextBox6.Text = Format(ValFrm(TextBox7.Text) * ValFrm(TextBox20.Text), "0.00 €")
Si la TextBox20 peut aussi contenir le symbole "€":
VB:
Function ValFrm(ByVal Txt As String) As Double
If Txt Like "*%" Then
   ValFrm = CDbl(Replace(Txt, "%", "")) / 100
Else
   ValFrm = CDbl(Replace(Txt, "€", ""))
   End If
End Function
À +
 
Re : Calcul textbox

Re,

Au lieu de contrôler les entrées dans les TextBox on peut utiliser un bouton :

Code:
Private Sub CommandButton1_Click()
Dim t1$, t2$
t1 = Replace(Replace(TextBox7, "%", ""), ",", ".")
TextBox7 = Format(Val(t1), "0.00\%")
t2 = Replace(Replace(TextBox20, "%", ""), ",", ".")
TextBox6 = Format(Val(t1) * Val(t2) / 100, "0.00 €")
End Sub
Fichier (3).

A+
 

Pièces jointes

Re : Calcul textbox

bonjour tous 🙂🙂🙂🙂🙂
dans son cas
Textbox20 est un montant saisi
on renseigne la textbox 20


Code:
Private Sub TextBox20_Change()
TextBox6 = Format(Val(TextBox7.Text) / 100 * TextBox20.Text, "0.00 €")
End Sub

eventuellement si il efface textbox20

Code:
Private Sub TextBox20_Change()
On Error Resume Next
TextBox6 = Format(Val(TextBox7.Text) / 100 * TextBox20.Text, "0.00 €")
End Sub

peut être suffisant???
 
Re : Calcul textbox

Lorsque l'on clique sur l'userform, et que l'on choisit dans la première Combobox"SECTEUR", on passe à la seconde Combobox et l'on choisit "chaussure".
On renseigne dans montant annuel "15000", par ex.

Automatiquement l'USF va récupérer des données, en l'occurrence des pourcentages.
et Automatiquement aussi, il calcul une valeur de la manière suivante: montant annuel * le pourcentage de la ligne.

cependant je ne parviens pas à faire en sorte que ma valeur en bout de ligne tienne compte des décimales du pourcentage dans son calcul.

j'espère avoir votre aide

merci
 
Re : Calcul textbox

Re,

Code:
Private Sub Calcul()
TextBox4 = Val(Replace(Replace(ComboBox3, "%", ""), ",", ".")) * Val(Montantannuel) / 100
TextBox6 = Val(Replace(Replace(TextBox5, "%", ""), ",", ".")) * Val(Montantannuel) / 100
TextBox13 = Val(Replace(Replace(TextBox12, "%", ""), ",", ".")) * Val(Montantannuel) / 100
TextBox14 = Val(Replace(Replace(ComboBox4, "%", ""), ",", ".")) * Val(Montantannuel) / 100
'mise en euros des résultats
TextBox4 = Format(TextBox4, "# ##0.00 €")
TextBox6 = Format(TextBox6, "# ##0.00 €")
TextBox13 = Format(TextBox13, "# ##0.00 €")
TextBox14 = Format(TextBox14, "# ##0.00 €")
End Sub
Vous n'avez même pas essayé de comprendre les codes que j'ai donnés dans mes posts précédents.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
899
Réponses
4
Affichages
484
Réponses
4
Affichages
923
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…