Problème de reconnaissance de valeur dans objet TextBox
Bonjour à tous, je suis nouveau sur le forum et je cherche une solution à ma macro.
Je souhaite que l'utilisateur entre un poids dans un Textbox (nommée : POIDS) et que le TextBox TRANCHE DE POIDS se mette à jour en fonction du poids renseigné et de la tranche de poids dans laquelle il se trouve.
Mon problème majeur est que la macro ne reconnait aucune valeur entrée dans mon TextBox POIDS.
Donc il me sort toujours le message box "Le Poids ne peut-être nul ou négatif" que j'ai paramétré
Quelqu'un aurait-il une solution.
Ci-dessous la macro en question :
Private Sub POIDS_CHANGE()
Dim POIDS As Integer
Dim TRANCHEPOIDS As Integer
Pds = POIDS
Tpds = TRANCHEPOIDS
If Pds > 0 And Pds <= 89 Then
Tpds.Value = Application.WorksheetFunction.MRound(POIDS + 5, 10) - 1
ElseIf Pds > 89 And Pds <= 100 Then
Tpds = 100
ElseIf Pds > 100 And Pds <= 299 Then
Tpds = 299
ElseIf Pds > 299 And Pds <= 499 Then
Tpds = 499
ElseIf Pds > 499 And Pds <= 699 Then
Tpds = 699
ElseIf Pds > 699 And Pds <= 999 Then
Tpds = 999
ElseIf Pds > 999 And Pds <= 3000 Then
Tpds = 3000
ElseIf Pds > 3000 Then
MsgBox "En Messagerie le Poids ne peut excéder 3000 KG, pour un seul destinataire"
Else
MsgBox "Le Poids ne peut-être nul ou négatif"
End If
End Sub
Bonjour
Quand tu écris
Dim POIDS As Integertu initialise ta variable POIDS à 0
Et si ensuite tu marques
Pds = POIDSta variable Pds est initialisée à 0 donc tu as ton message d'erreur "Le Poids ne peut-être nul ou négatif"
Ton fichier serait utile : je pense à une confusion entre la TextBox (POIDS) et une variable (POIDS)
Sans grande conviction modifies la macro
Private Sub POIDS_CHANGE()
Dim Pds As Integer
Dim Tpds As Integer
Pds = POIDS
If Pds > 0 And Pds <= 89 Then
'.
' suite normale
'.
TRANCHEPOIDS = Tpds
End SubBonjour Banzai64,
je te remercie pour ta réponse rapide, effectivement DIM POIDS as integer polluait mon code. Par contre, le problème que j'ai maintenant c'est que la tranche de poids ne vient pas s'inscrire dans mon TextBox TRANCHEPOIDS.
J'ai essayé de mettre :
Tpds.value= 699 (par exemple) mais j'ai une erreur d'exécution 424 : Objet requis
Aurais-tu une solution?
Re BANZAI64,
C'est bon j'ai trouvé effectivement je suis allé trop vite en lisant ta réponse, je n'avais pas levé Tpds =TRANCHEPOIDS au début du code et j'ai rajouté TRANCHEPOIDS=Tpds en fin et ça marche
Je te remercie encore pour ton aide précieuse.
A bientôt,