Microsoft 365 Calcul Pourcentage dans Userform

  • Initiateur de la discussion Initiateur de la discussion eric72
  • 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 !

eric72

XLDnaute Accro
Bonjour à tous,
Je me permets de faire appel à votre savoir pour régler un "petit" problème de calcul de pourcentage dans un userform, plus précisemment quand le pourcentage a un décimal, dans cet exemple 5,5% qui correspond à un taux de TVA. Dans mon userform quand je mets un prix de vente HT et que je clique sur "TVA Réduite", il calcul 5% de TVA au lieu de 5,5%.
Je suis certain que vous avez la solution à ce problème, mais moi je bloque!!!
Merci beaucoup pour votre aide.
Eric
 

Pièces jointes

Solution
je n'ai pas dit qu'il fallait mettre "5,5" je t'ai donné un exemple avec "5,5" a toi d'utiliser ou ta variable, ou ton texbox ou ta cellule.

si ta cellule est au format % la vraie valeur est 0,55 ou 0,66 selon donc val(replace(cell,",","."))

ceci dit dans ton imprim écran on voit que c'est du texte 5,5% positionné a gauche .

je t'invite a corriger ça pour que ce soit du numérique au format %

quand j'aurai accès à mon ordinateur je regarderai ton fichier.
je n'ai pas dit qu'il fallait mettre "5,5" je t'ai donné un exemple avec "5,5" a toi d'utiliser ou ta variable, ou ton texbox ou ta cellule.

si ta cellule est au format % la vraie valeur est 0,55 ou 0,66 selon donc val(replace(cell,",","."))

ceci dit dans ton imprim écran on voit que c'est du texte 5,5% positionné a gauche .

je t'invite a corriger ça pour que ce soit du numérique au format %

quand j'aurai accès à mon ordinateur je regarderai ton fichier.
 
Dernière édition:
je n'ai pas dit qu'il fallait mettre "5,5" je t'ai donné un exemple avec "5,5" a toi d'utiliser ou ta variable, ou ton texbox ou ta cellule.

si ta cellule est au format % la vraie valeur est 0,55 ou 0,66 selon donc val(replace(cell,",","."))

ceci dit dans ton imprim écran on voit que c'est du texte 5,5% positionné a gauche .

je t'invite a corriger ça pour que ce soit du numérique au format %

quand j'aurai accès à mon ordinateur je regarderai ton fichier.

je n'ai pas dit qu'il fallait mettre "5,5" je t'ai donné un exemple avec "5,5" a toi d'utiliser ou ta variable, ou ton texbox ou ta cellule.

si ta cellule est au format % la vraie valeur est 0,55 ou 0,66 selon donc val(replace(cell,",","."))

ceci dit dans ton imprim écran on voit que c'est du texte 5,5% positionné a gauche .

je t'invite a corriger ça pour que ce soit du numérique au format %

quand j'aurai accès à mon ordinateur je regarderai ton fichier.
En effet, c'était du texte dans ma cellule, j'ai modifié et tout fonctionne parfaitement.
Merci beaucoup et bonne journée
 
Bonsoir eric72, dysorthographie,

La moindre des choses est de donner les codes des 2 macros concernées dans l'UserForm :
VB:
Private Sub ObTVA_Click()
If TxtVenteHT = "" Then MsgBox "Vous devez saisir le Montant H.T de la vente": ObTVA = False: ObTVAReduite = False: Exit Sub
tvavente = Feuil2.Range(IIf(ObTVA, "TbTVA", "TbTVAReduite"))
tvafacturevente = Val(Replace(TxtVenteHT, ",", ".")) * tvavente
TxtTVAVente = tvafacturevente
TxtTVAVente = Format(TxtTVAVente, "currency")
TxtVenteTTC = Val(Replace(TxtVenteHT, ",", ".")) + Val(Replace(TxtTVAVente, ",", "."))
TxtVenteTTC = Format(TxtVenteTTC, "currency")
End Sub

Private Sub ObTVAReduite_Click()
ObTVA_Click
End Sub
B2 et D2 étant des nombres et non des textes.

A+
 

Pièces jointes

Dernière édition:
Bonjour le forum,

Pour que le code fonctionne qu'il y ait des textes ou des nombres en B2 et D2 il faut utiliser Evaluate :
VB:
Private Sub ObTVA_Click()
If TxtVenteHT = "" Then MsgBox "Vous devez saisir le Montant H.T de la vente": ObTVA = False: ObTVAReduite = False: Exit Sub
tvavente = Feuil2.Range(IIf(ObTVA, "TbTVA", "TbTVAReduite")).Text 'texte affiché
tvafacturevente = Val(Replace(TxtVenteHT, ",", ".")) * Evaluate(Replace(tvavente, ",", "."))
TxtTVAVente = tvafacturevente
TxtTVAVente = Format(TxtTVAVente, "currency")
TxtVenteTTC = Val(Replace(TxtVenteHT, ",", ".")) + Val(Replace(TxtTVAVente, ",", "."))
TxtVenteTTC = Format(TxtVenteTTC, "currency")
End Sub

Private Sub ObTVAReduite_Click()
ObTVA_Click
End Sub
A+
 

Pièces jointes

Dernière édition:
- 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
5
Affichages
492
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
436
Réponses
2
Affichages
360
Retour