Problème de calcul TTC vers TVA en VBA

Bonjour,

Je viens vers vous car j'ai un souci avec un code. Normalement il est censé calculer la TVA à partir du TTC.

Mais les montant ne correspond pas avec une facture réelle. Le montant de la TVA est erroné

Sub CalculTVA()
Dim I As Integer
Dim TauxTVA As Double
    Me.Label10.Caption = ""
    For I = 1 To 4
        If Me.Controls("OBTaux" & I) = True Then
            TauxTVA = Val(Replace(Me.Controls("OBTaux" & I).Caption, "%", "")) / 100
            Exit For
        End If
    Next I
    If I > 4 Then Exit Sub
    If IsNumeric(Me.TBMontantTTC) Then
        Me.Label10.Caption = "dont " & Format(Application.Round(Me.TBMontantTTC * TauxTVA, 2), "#,##0.00") & " € de TVA"
    End If
End Sub

Vous pensez que l'erreur viens du code?

Je vous joints mon fichier avec une facture réelle au cas ou vous en aurez besoin.

Merci d'avance


ps : j'ai oublié la photo

106classeur1.xlsm (42.59 Ko)

Bonsoir,

Effectivement, il y a une petite erreur dans le calcul. Tu dois diviser le montant TTC par le taux de TVA auquel tu rajoute 1 donc, c'est HT = TTC / (TAUX +1) où le taux de TVA est bien entendu inférieur à 1 :

Sub CalculTVA()

Dim I As Integer
Dim TauxTVA As Double

    Me.Label10.Caption = ""

    For I = 1 To 4
        If Me.Controls("OBTaux" & I) = True Then
            TauxTVA = Val(Replace(Me.Controls("OBTaux" & I).Caption, "%", "")) / 100
            Exit For
        End If
    Next I

    If I > 4 Then Exit Sub

    If IsNumeric(Me.TBMontantTTC) Then
        'ici, il te faut diviser par le taux de TVA qui doit être supérieur à 1
        Me.Label10.Caption = "dont " & Format(Application.Round(Me.TBMontantTTC / (TauxTVA + 1), 2), "#,##0.00") & " € de TVA"

    End If

End Sub

Bonsoir,

TVA = MontantTTC * TauxTVA / (1 + TauxTVA)

Cordialement.

Oups,

Je me suis trompé, j'ai sorti le HT de la somme et tu veux le montant de TVA, c'est donc ceci :

Me.Label10.Caption = "dont " & Format(Application.Round(Me.TBMontantTTC - Me.TBMontantTTC / (1 + TauxTVA), 2), "#,##0.00") & " € de TVA"

Y'a pas de mal

Merci à vous deux

J'aurais une autre question, sur ce code comment je pourrait mettre le 1er janvier de l'année N

au lieu du premier du mois dernier

    Me.DTPDateDébut = DateAdd("m", -1, DateSerial(Year(Date), Month(Date), 1))
    Me.DTPDateDébut = DateSerial(Year(Date), 1, 1)

si l'année N est l'année en cours.

Bonjour,

c'est exactement ça

merci beaucoup

Rechercher des sujets similaires à "probleme calcul ttc tva vba"