code vba probleme avec total HT

Accueil – Le CFO masqué Forums Excel code vba probleme avec total HT

2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Articles
  • #59136
    cavila
    Participant

    bonsoir tout le monde j’ai besoin de votr aide svp pour code vba j’ai un problème avec le Prix HT il ne s’affiche pas a l’insertion de la Quantite et le Prix U dans les (textbox)T1 et T2? car il s’affiche après avoir sélection la valeur de la TVA dans la combobox et je voudrais qu’il s’affiche meme si y a pas de valeur tva voila le code.
    `Private TEST As Boolean ‘déclare la variable TEST

    Private Sub UserForm_Initialize()
    Me.ComboBox1.List = Array(“0.19”, “0.17”) ‘alimene la ComboBox1
    End Sub

    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) ‘à l’appui sur une touche d’u clavier dans la TextBox1
    If KeyAscii = 44 Then KeyAscii = 46: Exit Sub ‘remplace la virgule par le point
    If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 8 ‘n’autorise que les caractères {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
    End Sub

    Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) ‘à l’appui sur une touche d’u clavier dans la TextBox2
    If KeyAscii = 44 Then KeyAscii = 46: Exit Sub ‘remplace la virgule par le point
    If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 8 ‘n’autorise que les caractères {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
    End Sub

    Private Sub ComboBox1_Change() ‘au changement dans la ComboBox1
    Dim Q As Double ‘déclare la variable Q (Quantité)
    Dim PU As Double ‘déclare la variable PU (Prix Unitaire)
    Dim TVA As Double ‘déclare la variable TVA
    Dim MHT As Double ‘déclare la variable MHT (Montant Hors Taxe)
    Dim MTVA As Double ‘déclare la variable MTVA (Montant TVA)
    Dim TTC As Double ‘déclare la variable TTC

    If TEST = True Then TEST = False: Exit Sub ‘condition : si TEST est [Vrai], TEST devient [Faux], sort de la procédure
    With Me.TextBox1 ‘prend en compte la TextBox1
    If .Value = “” Then ‘condition : si la textbox est vide
    TEST = True ‘définit la variable TEST
    Me.ComboBox1.Value = “” ‘vide la ComboBox1
    MsgBox “Vous devez renseigner la quantité !” ‘message
    .SetFocus ‘place le curseur dans la TexbBox1
    Exit Sub ‘sort de la procédure
    End If ‘fin de la condition
    End With ‘fin de la prise en compte de la TextBox1
    With Me.TextBox2 ‘prend en compte la TextBox2
    If .Value = “” Then ‘condition : si la textbox est vide
    TEST = True ‘définit la variable TEST
    Me.ComboBox1.Value = “” ‘vide la ComboBox1
    MsgBox “Vous devez renseigner le Prix Unitaire !” ‘message
    .SetFocus ‘place le curseur dans la TexbBox2
    Exit Sub ‘sort de la procédure
    End If ‘fin de la condition
    End With ‘fin de la prise en compte de la TextBox1

    Q = CDbl(Val(Me.TextBox1.Value)) ‘définit la variable Q
    PU = CDbl(Val(Me.TextBox2.Value)) ‘définit la variable PU
    TVA = Val(Me.ComboBox1.Value) ‘définit la variable TVA
    MHT = Q * PU: Me.TextBox3.Value = MHT: Me.TextBox3.Value = Replace(Me.TextBox3.Value, “,”, “.”) ‘définit la variable MHT et la renvoie dans la TextBox3
    MTVA = MHT * TVA: Me.TextBox4.Value = MTVA: Me.TextBox4.Value = Replace(Me.TextBox4.Value, “,”, “.”) ‘définit la variable MTVA et la renvoie dasn la Textbox4
    TTC = Round(MHT + (MHT * TVA), 2): Me.TextBox5.Value = TTC: Me.TextBox5.Value = Replace(Me.TextBox5.Value, “,”, “.”) ‘définit la variable TTC et la renvoie dans la TextBox5
    End Sub

    Private Sub CommandButton1_Click()
    Unload Me ‘vide et ferme l’UserForm en cours
    End Sub

    et voila le fichier

    Attachments:
    You must be logged in to view attached files.
    #59140
    Consultant No.3
    Participant

    Bonjour,

    Votre code de calcul et d’affichage des valeurs pour la TextBox3 qui représente le Prix HT sont placés dans la macro “Private Sub ComboBox1_Change()”. Ces calculs ne s’effectueront donc uniquement lors du changement de votre ComboBox1 qui correspond à la liste déroulante TVA.

    Afin d’activer ce calcul même s’il n’y a pas de TVA, il vous faudra placer également le même code de calcul sous les 2 macros suivantes :

    -Private Sub Textbox1_Change()
    -Private Sub Textbox2_Change()

    Dans ce cas là chaque fois que la valeur de la quantité (Textbox1) ou du prix (Textbox2) changera, le Px unitaire sera calculé.

    Cordialement,

2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.