Etoto
XLDnaute Barbatruc
Bonjour à tous,
Y a 2 ans, grâce à ce site web, j'ai appris à créer une fonction pour calculer la TVA, le TTC et le HT mais je l'avais adaptée à mon pays. Et aujourd'hui, j'ai décidé de l'améliorer pour les trois pays francophones les plus présents sur ce site :
France
Belgique
Suisse
Si vous voulez que je rajoute d'autres pays, dites-le moi !
Voici leur codes :
Je suis pratiquement certain qu'il existe un moyen d'améliorer cette fonction, alors comme d'habitude, je suis ouvert à toute amélioration.
Voici un fichier qui explique comment utiliser cette fonction.
V1 TVA : Daniel
V2 TVA : Etoto
V3 TVA : @dysorthographie
Créateur TTC : Daniel
Amélioration TTC : Etoto
Créateur HT : Etoto
Cordialement
Y a 2 ans, grâce à ce site web, j'ai appris à créer une fonction pour calculer la TVA, le TTC et le HT mais je l'avais adaptée à mon pays. Et aujourd'hui, j'ai décidé de l'améliorer pour les trois pays francophones les plus présents sur ce site :
France
Belgique
Suisse
Si vous voulez que je rajoute d'autres pays, dites-le moi !
Voici leur codes :
VB:
Enum TvaType
Pas_Tva
Tva_Normal ' 20 %
Tva_Intermédiaire ' 10 %
TVA_Réduit '5,5 %
TVA_particulier '2,1 %
End Enum
Function TVA(HTVA, Optional code As TvaType = Tva_Normal, Optional pays = "FR")
Select Case UCase(pays)
Case "FR"
Select Case code
Case 0: TVA = 0
Case 1: TVA = 0.2
Case 2: TVA = 0.1
Case 3: TVA = 0.055
Case 4: TVA = 0.021
Case Else: TVA = "Code trop élevé"
End Select
Case "CH"
Select Case code
Case 0: TVA = 0
Case 1: TVA = 0.077
Case 2: TVA = 0.037
Case 3: TVA = 0.025
Case Else: TVA = "Code trop élevé"
End Select
Case "BE"
Select Case code
Case 0: TVA = 0
Case 1: TVA = 0.21
Case 2: TVA = 0.12
Case 3: TVA = 0.06
Case Else: TVA = "Code trop élevé"
End Select
End Select
If TVA <> "Code trop élevé" Then TVA = HTVA * TVA
End Function
Sub test()
Debug.Print TVA(100), TVA(100, Tva_Intermédiaire), TVA(100, pays:="CH")
End Sub
VB:
Function TTC(HTVA, code, Optional pays)
If pays = "fr" Then
If code = 0 Then
TTC = HTVA
ElseIf code = 1 Then
TTC = HTVA * 1.2
ElseIf code = 2 Then
TTC = HTVA * 1.1
ElseIf code = 3 Then
TTC = HTVA * 1.055
ElseIf code = 4 Then
TTC = HTVA * 1.021
ElseIf code <> 0 And code <> 1 And code <> 2 And code <> 3 And code <> 4 Then
TTC = "Code trop élevé"
End If
ElseIf pays = "ch" Then
If code = 0 Then
TTC = HTVA
ElseIf code = 1 Then
TTC = HTVA * 1.077
ElseIf code = 2 Then
TTC = HTVA * 1.037
ElseIf code = 3 Then
TTC = HTVA * 1.025
ElseIf code <> 0 And code <> 1 And code <> 2 And code <> 3 Then
TTC = "Code trop élevé"
End If
ElseIf pays = "be" Then
If code = 0 Then
TTC = HTVA
ElseIf code = 1 Then
TTC = HTVA * 1.21
ElseIf code = 2 Then
TTC = HTVA * 1.12
ElseIf code = 3 Then
TTC = HTVA * 1.06
ElseIf code <> 0 And code <> 1 And code <> 2 And code <> 3 Then
TTC = "Code trop élevé"
End If
End If
End Function
VB:
Function HT(TTC, code, Optional pays)
If pays = "fr" Then
If code = 0 Then
HT = TTC
ElseIf code = 1 Then
HT = TTC / 1.2
ElseIf code = 2 Then
HT = TTC / 1.1
ElseIf code = 3 Then
HT = TTC / 1.055
ElseIf code = 4 Then
HT = TTC / 1.021
ElseIf code <> 0 And code <> 1 And code <> 2 And code <> 3 And code <> 4 Then
HT = "Code trop élevé"
End If
ElseIf pays = "ch" Then
If code = 0 Then
HT = TTC
ElseIf code = 1 Then
HT = TTC / 1.077
ElseIf code = 2 Then
HT = TTC / 1.037
ElseIf code = 3 Then
HT = TTC / 1.025
ElseIf code <> 0 And code <> 1 And code <> 2 And code <> 3 Then
HT = "Code trop élevé"
End If
ElseIf pays = "be" Then
If code = 0 Then
HT = TTC
ElseIf code = 1 Then
HT = TTC / 1.21
ElseIf code = 2 Then
HT = TTC / 1.12
ElseIf code = 3 Then
HT = TTC / 1.06
ElseIf code <> 0 And code <> 1 And code <> 2 And code <> 3 Then
HT = "Code trop élevé"
End If
End If
End Function
Je suis pratiquement certain qu'il existe un moyen d'améliorer cette fonction, alors comme d'habitude, je suis ouvert à toute amélioration.
Voici un fichier qui explique comment utiliser cette fonction.
V1 TVA : Daniel
V2 TVA : Etoto
V3 TVA : @dysorthographie
Créateur TTC : Daniel
Amélioration TTC : Etoto
Créateur HT : Etoto
Cordialement
Pièces jointes
Dernière édition: