Je souhaite appliquer un taux selon le montant d'une TextBox "TtBoxPAchArt1" qui peuvent comporter des décimales
ex. : si TtBoxPAchArt1 est inférieure à 39 alors la ComboBox "CBoxMarge1" aura pour taux 1.30
si TtBoxPAchArt1 est comprise entre 40 et 79 alors CBoxMarge1 aura pour taux 1.20, etc
ceci fonctionne
mais j'ai d'autres TextBox et Combobox dans l'userform, en fait ça se présente comme ça :
ComboboxCat1 ComboboxArt1 TextBoxInfArt1 TtBoxPAchArt1 CBoxMarge1 TextBoxVte1
ComboboxCat2 ComboboxArt2 TextBoxInfArt2 TtBoxPAchArt2 CBoxMarge2 TextBoxVte2
ComboboxCat3 ComboboxArt3 TextBoxInfArt3 TtBoxPAchArt3 CBoxMarge3 TextBoxVte3
...
...
ComboboxCat20 ComboboxArt20 TextBoxInfArt20 TtBoxPAchArt20 CBoxMarge20 TextBoxVte20
Un début de code
Comment bidouiller le code pour faire en sorte que seuls les TextBox "TtBoxPAchArt(X)" soient pris en compte et que le traitement s’applique aux ComboBox "CBoxMarge(x)" ?
Comment faire pour que ceci fonctionne automatiquement sur toutes les lignes car pour le moment l'opération s'effectue au changement de "TtBoxPAchArt1_Change()" ?
Merci,
ex. : si TtBoxPAchArt1 est inférieure à 39 alors la ComboBox "CBoxMarge1" aura pour taux 1.30
si TtBoxPAchArt1 est comprise entre 40 et 79 alors CBoxMarge1 aura pour taux 1.20, etc
ceci fonctionne
Code:
Private Sub TtBoxPAchArt1_Change()
Select Case TtBoxPAchArt1.Value
Case Is < 20
CBoxMarge1.Value = "1.40"
Case 21 To 49
CBoxMarge1.Value = "1.30"
Case 50 To 79
CBoxMarge1.Value = "1.25"
Case 80 To 119
CBoxMarge1.Value = "1.20"
Case 120 To 149
CBoxMarge1.Value = "1.15"
Case Is > 150
CBoxMarge1.Value = "1.10"
End Select
End Sub
mais j'ai d'autres TextBox et Combobox dans l'userform, en fait ça se présente comme ça :
ComboboxCat1 ComboboxArt1 TextBoxInfArt1 TtBoxPAchArt1 CBoxMarge1 TextBoxVte1
ComboboxCat2 ComboboxArt2 TextBoxInfArt2 TtBoxPAchArt2 CBoxMarge2 TextBoxVte2
ComboboxCat3 ComboboxArt3 TextBoxInfArt3 TtBoxPAchArt3 CBoxMarge3 TextBoxVte3
...
...
ComboboxCat20 ComboboxArt20 TextBoxInfArt20 TtBoxPAchArt20 CBoxMarge20 TextBoxVte20
Un début de code
Code:
Private Sub TtBoxPAchArt1_Change()
If TypeOf Ctrl Is MSForms.TextBox Then
If Mid(Ctrl.Name, 8, 2) = "TtBoxPAchArt1" Then
Valeur = Ctrl.Object.Value
If Len(Ctrl.Name) > 9 Then
Num = Mid(Ctrl.Name, 10, 9 ^ 9)
Else
Num = ""
End If
Select Case Valeur
Case Is < 20
Controls("CBoxMarge1" & Num).Value = "1.40"
Case 21 To 49
Controls("CBoxMarge" & Num).Value = "1.30"
Case 50 To 79
Controls("CBoxMarge" & Num).Value = "1.25"
Case 80 To 119
Controls("CBoxMarge" & Num).Value = "1.20"
Case 120 To 149
Controls("CBoxMarge" & Num).Value = "1.15"
Case Is > 150
Controls("CBoxMarge" & Num).Value = "1.10"
End Select
End If
End If
Next Ctrl
End Sub
Comment bidouiller le code pour faire en sorte que seuls les TextBox "TtBoxPAchArt(X)" soient pris en compte et que le traitement s’applique aux ComboBox "CBoxMarge(x)" ?
Comment faire pour que ceci fonctionne automatiquement sur toutes les lignes car pour le moment l'opération s'effectue au changement de "TtBoxPAchArt1_Change()" ?
Merci,
Dernière édition: