Re : Mettre un mot de passe sur une plage en fonction de la valeur d'une cellule
Bonjour à tous,
Finalement j'ai réussi à solutionner mon calcul de TVA.
En revanche, j'ai un problème dans l'affichage de la TVA dans la combobox quand elle est selectionnée.
Par exemple si je sélectionne la TVA à 5,5% , ça va m'afficher "5,". Et le calcul qui en découle n'est pas exact.
Voici à quoi ressemble mon code:
Function pv(a): pv = Replace(Replace(a, ".", ","), " ", ""): End Function
Function vp(a): vp = Replace(Replace(Replace(a, ",", "."), " ", ""), Chr(160), ""): End Function
Function fo(a): fo = Format(a, "#,##0.00"): End Function
Function lo(a): lo = Format(a, "0.#"): End Function
Dim e&, a As Control, b As Control, c As Control, TotalTTC
For e = 1 To 12
' on affecte à a,b,c les trois derniers controles de chaque ligne
Set a = Me.Controls("TextBox_PTHT_" & e): Set b = Me.Controls("Combobox_TVA" & e)
Set c = Me.Controls("TextBox_PT_TTC" & e)
' on en profite pour redéfinir les tabutations
Me.Controls("TextBox_Réf_" & e).TabIndex = 4 * (e - 1) + 0
Me.Controls("TextBox_Désignation_" & e).TabIndex = 4 * (e - 1) + 1
x.TabIndex = 4 * (e - 1) + 2: y.TabIndex = 4 * (e - 1) + 3: b.TabIndex = 4 * (e - 1) + 4
' on prend le controle, on remplace les virgules par des points (vp)
' on trouve la valeur numérique (VAL), si c'est un montant monétaire
' on le formate(0:00 par fo),on remplace les points par des virgules (vp)
' on réaffecte le résultat au controle
If a <> "" Then a = pv(fo(Val(vp(a)))) 'PTHT
If b <> "" Then b = lo(Val(b)) 'TVA
' si a ou b ne sont pas vides, on calcule le montant de la ligne et on l'inscrit
If Trim(a & b) <> "" Then c = fo(pv(Val(vp(a))) * (1 + pv(Val(vp(b))) / 100)) Else c = ""
' on en profite pour rajouter le montant de la ligne au total hors taxe
'TextBox_Mtt_TTC_commandé = Replace(TextBox_Mtt_TTC_commandé, ",", ".") + Val(vp(c))
TotalTTC = TotalTTC + Val(vp(c))
Next e
En rouge les endroits qui pose problème.
Avez vous une idée car ça fait 2h que je tourne en rond sans arriver à mes fins...
Merci beaucoup de votre aide