OVH Cloud OVH Cloud

macro, inconvénient aprés usage

3 réponses
Avatar
DC
Bonjour à tous,

C'est une macro généreusement conçue par Jacky,

Cette macro doit faire le choix entres 2 TVA soit : 19,60% et 5,5% pour
aller inscrire la valeur TVA en colonne F pour 19,60% et en colonne G pour
5,5%

Seulement voilà, çà fontionne très bien si je travaille avec
Ex: 1000 HT et 1196 TTC donc différentiel = 196
Ou : 1000HT et 1055 TTC donc différentiel = 055

Mais lorsque en HT j'ai un chiffre du genre 96,80 çà m'ouvre une fenêtre : "
TVA de 5, 495868% inconnue "

A savoir que : les Colonnes : H=ttc E=ht G=5,5% F=19,6%

'--------------------
Sub test_tva()
'
Dim x As Single, Ligne As Long

Ligne = ActiveCell.Row
x = (Range("H" & Ligne) / Range("E" & Ligne) - 1) * 100
If x = 19.6 Then
Range("F" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("G" & Ligne) = ""
ElseIf x = 5.5 Then
Range("G" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("F" & Ligne) = ""
Else
Range("G" & Ligne) = ""
Range("F" & Ligne) = ""
MsgBox "TVA de " & x & "% inconnue"
End If

End Sub
'--------------------------------

Peut-on y remédier.???

Salutations!..............Merci d'avance....................DC

3 réponses

Avatar
ThierryP
Bonjour,

Peut-être avec round(x,1)=5,5

@+ thierryp

Bonjour à tous,

C'est une macro généreusement conçue par Jacky,

Cette macro doit faire le choix entres 2 TVA soit : 19,60% et 5,5% pour
aller inscrire la valeur TVA en colonne F pour 19,60% et en colonne G pour
5,5%

Seulement voilà, çà fontionne très bien si je travaille avec
Ex: 1000 HT et 1196 TTC donc différentiel = 196
Ou : 1000HT et 1055 TTC donc différentiel = 055

Mais lorsque en HT j'ai un chiffre du genre 96,80 çà m'ouvre une fenêtre : "
TVA de 5, 495868% inconnue "

A savoir que : les Colonnes : H=ttc E=ht G=5,5% F,6%

'--------------------
Sub test_tva()
'
Dim x As Single, Ligne As Long

Ligne = ActiveCell.Row
x = (Range("H" & Ligne) / Range("E" & Ligne) - 1) * 100
If x = 19.6 Then
Range("F" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("G" & Ligne) = ""
ElseIf x = 5.5 Then
Range("G" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("F" & Ligne) = ""
Else
Range("G" & Ligne) = ""
Range("F" & Ligne) = ""
MsgBox "TVA de " & x & "% inconnue"
End If

End Sub
'--------------------------------

Peut-on y remédier.???

Salutations!..............Merci d'avance....................DC




Avatar
argyronet
Bonjour,
Pourquoi ne rédigez-vous pas une fonction montantTVA, une autre prixHT et il
vous suffit de les poser comme quand vous utilisez une fonction Somme...
Dans le classeur de macro perso, coller cette portion de code...
Public Function MontantTVA(ByVal Prix As Double, ByVal Taux As Integer) As
Single
Dim sngTaux As Single

Select Case Taux
Case 1: sngTaux = 0.196
Case 2: sngTaux = 0.055
End Select
MontantTVA = Round(Prix * sngTaux, 2)
End Function
Et vous l'utilsez comme suit (un prix TTC est en H27):
=MontantTVA(H27;1)

Argy
--
Mes tutoriels sur http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour à tous,

C'est une macro généreusement conçue par Jacky,

Cette macro doit faire le choix entres 2 TVA soit : 19,60% et 5,5% pour
aller inscrire la valeur TVA en colonne F pour 19,60% et en colonne G pour
5,5%

Seulement voilà, çà fontionne très bien si je travaille avec
Ex: 1000 HT et 1196 TTC donc différentiel = 196
Ou : 1000HT et 1055 TTC donc différentiel = 055

Mais lorsque en HT j'ai un chiffre du genre 96,80 çà m'ouvre une fenêtre : "
TVA de 5, 495868% inconnue "

A savoir que : les Colonnes : H=ttc E=ht G=5,5% F,6%

'--------------------
Sub test_tva()
'
Dim x As Single, Ligne As Long

Ligne = ActiveCell.Row
x = (Range("H" & Ligne) / Range("E" & Ligne) - 1) * 100
If x = 19.6 Then
Range("F" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("G" & Ligne) = ""
ElseIf x = 5.5 Then
Range("G" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("F" & Ligne) = ""
Else
Range("G" & Ligne) = ""
Range("F" & Ligne) = ""
MsgBox "TVA de " & x & "% inconnue"
End If

End Sub
'--------------------------------

Peut-on y remédier.???

Salutations!..............Merci d'avance....................DC





Avatar
DC
Bonjour à tous.....................Bonjour argyronet,

Je vous remercie pour votre réponse et je vais être honnête avec vous, je
n'ai pas réussi à me servir de votre code,

Pas du tout initié..!!.......mais bon.....; j'ai quand même solutionné mon
problème d'une autre manière, en jouant sur les valeurs de TVA et en
indiquant >= 19 et <=6 , au lieu des = 19.6 et = 5.5 qui ne devaient pas
laisser de marge et à première vue, çà a l'air de bien fonctionner,

Enfin, à voir la macro "test_tva" , qui est de nouveau sur le forum, suite à
une nouvelle question,

Salutations!.........un grand Merci.!!..............DC

"argyronet" a écrit dans le message de
news:
Bonjour,
Pourquoi ne rédigez-vous pas une fonction montantTVA, une autre prixHT et
il
vous suffit de les poser comme quand vous utilisez une fonction Somme...
Dans le classeur de macro perso, coller cette portion de code...
Public Function MontantTVA(ByVal Prix As Double, ByVal Taux As Integer) As
Single
Dim sngTaux As Single

Select Case Taux
Case 1: sngTaux = 0.196
Case 2: sngTaux = 0.055
End Select
MontantTVA = Round(Prix * sngTaux, 2)
End Function
Et vous l'utilsez comme suit (un prix TTC est en H27):
=MontantTVA(H27;1)

Argy
--
Mes tutoriels sur http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on
obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour à tous,

C'est une macro généreusement conçue par Jacky,

Cette macro doit faire le choix entres 2 TVA soit : 19,60% et 5,5% pour
aller inscrire la valeur TVA en colonne F pour 19,60% et en colonne G
pour
5,5%

Seulement voilà, çà fontionne très bien si je travaille avec
Ex: 1000 HT et 1196 TTC donc différentiel = 196
Ou : 1000HT et 1055 TTC donc différentiel = 055

Mais lorsque en HT j'ai un chiffre du genre 96,80 çà m'ouvre une fenêtre
: "
TVA de 5, 495868% inconnue "

A savoir que : les Colonnes : H=ttc E=ht G=5,5% F,6%

'--------------------
Sub test_tva()
'
Dim x As Single, Ligne As Long

Ligne = ActiveCell.Row
x = (Range("H" & Ligne) / Range("E" & Ligne) - 1) * 100
If x = 19.6 Then
Range("F" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("G" & Ligne) = ""
ElseIf x = 5.5 Then
Range("G" & Ligne) = Range("H" & Ligne) - Range("E" & Ligne)
Range("F" & Ligne) = ""
Else
Range("G" & Ligne) = ""
Range("F" & Ligne) = ""
MsgBox "TVA de " & x & "% inconnue"
End If

End Sub
'--------------------------------

Peut-on y remédier.???

Salutations!..............Merci d'avance....................DC