Boîte de dialogue / calculateur de remise

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

Fredox

XLDnaute Occasionnel
Bonjour,

J'aimerais intégrer dans mon classeur, une boîte de dialogue qui calculateur de remise.
Un champs prix, un autre taux de remise, et un dernier avec le tarif remisé.

Me demander pas pourquoi, mais je veux le faire par une boîte de dialogue.


Quelqu'un pour un coup de main ?


Merci
 
Re : Boîte de dialogue / calculateur de remise

Bonsoir,
Code:
Sub prix()
x = Application.InputBox("Quel est le prix de départ ?", "Cacul prix remisé", , , , , , 1)
If x = False Then Exit Sub
y = Application.InputBox("Quel est le pourcentage de remise ?", "Cacul prix remisé", , , , , , 1)
If y = False Then Exit Sub
MsgBox "Prix de départ " & x & vbCr & _
        "Remise de " & y & "%" & vbCr & _
        "Nouveau prix " & x * (1 - y / 100)
End Sub
A+
kjin
 
Re : Boîte de dialogue / calculateur de remise

Bonsoir,

J'ai regarder les deux solutions proposées, celle de Kjin fonctionne très bien, mais n'est pas tres intuitive.
La deuxième solution proposée par "SI..." est tres bien, passe par 1 seul UserForm.
Mais j'ai tenté de déchiffrer le code, je n'y comprend rien !

C'est possible d'avoir un seul UserForme pour la chose, mais que j'y comprenne le sens ?


Merci


Code:
Option Explicit

Private Sub L1_Click()

End Sub

Private Sub L2_Click()

End Sub

Private Sub Label1_Click()

End Sub

Private Sub T1_KeyPress(ByVal K As MSForms.ReturnInteger)
  If K < 46 Or K > 57 Or K = 47 Then K = 0
  If K = 46 Or K = 44 Then K = Asc(Application.International(3))
  If (K = 44 And T1 Like ("*,*")) Or (K = 46 And T1 Like ("*.*")) Then K = 0
End Sub

Private Sub T2_KeyPress(ByVal K As MSForms.ReturnInteger)
  If K < 46 Or K > 57 Or K = 47 Then K = 0
  If K = 46 Or K = 44 Then K = Asc(Application.International(3))
  If (K = 44 And T2 Like ("*,*")) Or (K = 46 And T2 Like ("*.*")) Then K = 0
End Sub
Private Sub T1_Change()
  T2 = "": T3 = ""
  If Not IsNumeric(T1) Or Not IsNumeric(T2) Or T1 = "" Or T2 = "" Then Exit Sub
  T3 = CDbl(T1) * (1 - CDbl(T2) / 100)
End Sub
Private Sub T2_Change()
  If T2 = "" Then T3 = "": Exit Sub
   If Not IsNumeric(T1) Or Not IsNumeric(T2) Or T1 = "" Then Exit Sub
  T3 = CDbl(T1) * (1 - CDbl(T2) / 100)
End Sub

Private Sub T3_Change()

End Sub

Private Sub UserForm_Click()

End Sub
 
Re : Boîte de dialogue / calculateur de remise

salut

Si… tu cherches bien, tu trouveras de nombreuses variantes pour avoir un "vrai" nombre dans un "TextBox".
Dans le fichier joint, tu as quelques explications de mon code ; de plus j’ai rajouté une autre façon avec un "clavier numérique" pour se contenter de la souris.
Là aussi, tu trouveras d’autres méthodes avec, encore, un Module de classe.
 

Pièces jointes

- 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
43
Affichages
813
Réponses
5
Affichages
700
Réponses
4
Affichages
586
Réponses
12
Affichages
364
Retour