Application d'un taux selon condition

ccharvet1

XLDnaute Nouveau
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
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:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 952
Membres
103 989
dernier inscrit
jralonso