Re : Mettre un mot de passe sur une plage en fonction de la valeur d'une cellule
Je ne peux pas joindre le fichier car il dépasse le poids autorisé.
Le code donne cela:
'calculs automatiques des textbox de Prix Total HT
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
Sub TextBox_PuHT_1_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_1_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_2_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_2_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_3_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_3_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_4_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_4_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_5_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_5_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_6_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_6_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_7_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_7_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_8_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_8_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_9_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_9_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_10_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_10_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_11_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_11_AfterUpdate(): valeurs: End Sub
Sub TextBox_PuHT_12_AfterUpdate(): valeurs: End Sub
Sub TextBox_Qté_12_AfterUpdate(): valeurs: End Sub
Sub valeurs()
Const TVA = 0.2 ' INDIQUER ICI le TAUX de TVA
Dim i&, x As Control, y As Control, z As Control, TotalHT
For i = 1 To 12
' on affecte à x,y,z les trois derniers controles de chaque ligne
Set x = Me.Controls("TextBox_Qté_" & i): Set y = Me.Controls("TextBox_PuHT_" & i)
Set z = Me.Controls("TextBox_PTHT_" & i)
' on en profite pour redéfinir les tabutations
Me.Controls("TextBox_Réf_" & i).TabIndex = 4 * (i - 1) + 0
Me.Controls("TextBox_Désignation_" & i).TabIndex = 4 * (i - 1) + 1
x.TabIndex = 4 * (i - 1) + 2: y.TabIndex = 4 * (i - 1) + 3
' 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 x <> "" Then x = pv(Val(vp(x)))
If y <> "" Then y = pv(fo(Val(vp(y))))
' si x ou y ne sont pas vide, on calcule le montant de la ligne et on l'inscrit
If Trim(x & y) <> "" Then z = pv(fo(Val(vp(x)) * Val(vp(y)))) Else z = ""
' on en profite pour rajouter le montant de la ligne au total hors taxe
TotalHT = TotalHT + Val(vp(z))
Next i
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(Val(vp(a)))
If b <> "" Then b = pv(fo(Val(vp(b))))
' si x ou y ne sont pas vide, on calcule le montant de la ligne et on l'inscrit
If Trim(a & b) <> "" Then c = pv(fo(Val(vp(a)) * (1 + Val(Replace(b, "%", ""))))) 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))
Next e
' on inscrit le total hors taxe
'TextBox1_Mtt_total_HT = pv(fo(TotalHT))
' on inscrit le total TTC
'TextBox_Mtt_TTC_commandé = pv(fo(TotalHT * (1 + TVA)))
End Sub