Erreur code affectant la valeur d'une textbox

Bonjour à tous et toutes,

Je cherche à affecter à une textbox une valeur dépendant de 2 listbox, par un produit de multiplication.

J'ai voulu faire de manière simple :

ListBox1.ListIndex = freq 'affectation de la valeur de la listbox 1 en foncton de la position

ListBox2.ListIndex = grav 'affectation de la vauleur de la listbox 2 en fonction de la position

Val (TextBox1) = grav * freq

Cela a beau être simple mais ne fonctionne pas.

Quelqu'un aurait-il une solution, même plus complexe ?

Par avance merci

Bonjour

ListIndex te retourne un nombre de -1 à ListCount -1

donc

Me.TextBox1 = grav * freq

devrait suffire

Merci pour cette solution rapide, mais ne fonctionne toujours pas.

Je vais quand meme garder ton dernier code qui me parait bien plus juste.

L'erreur viendrait de l'affectation de valeur ?

Bonjour

Oui j'avais pas fait gaffe

Tu récupères freq et grav en fonction de ListIndex

freq= Me.ListBox1.ListIndex
grav = Me.ListBox2.ListIndex
Me.TextBox1= grav * freq

Je crois que je divague

Ton fichier serait souhaitable

Ne fonctionne toujours pas.

Cela peut-il être du au mode de remplissage des ListBox ? pour les remplir, je suis passé par la propriété de mes ListBox, et je leur ai afecté une valeur en RowSource.

Voici joint le fichier avec les récents codes

23essai.xlsm (24.82 Ko)

Je viens de m'apercevoir qu'il faudrait en fait obliger les valeurs des listbox à être comprises entre 1 et 4 pour ne pas avoir de multiplication par 0. cela pourrait peut etre faciliter le probleme. (j'essaye également de mon côté de trouver une solution)

de plus, est-il possible de bloquer la textbox de façon qu'elle ne soit remplie que par le choix des listbox?

Bonjour

Ce que je trouve bizarre

  • Tu as placé ton code dans l'événement TextBox1_Change, à mon avis pas le bon événement mais plutôt lorsque tu appuies sur le bouton "Valider"
  • Le fait de faire défiler les choix de tes ListBox ne sélectionne pas le choix affiché, des ComboBox seraient plus judicieux

Le choix c'était porté pour des listbox pour qu'il soit impossible de taper quelque chose dans la liste.

Je me rapproche de ce que je souhaite grace à ton exemple. Serait-il possible de commencer l'index à 1 et non à 0 ?

Serait-il possible d'empecher la saisie manuelle dans la textbox ?

Bonjour

Seb33 a écrit :

Le choix c'était porté pour des listbox pour qu'il soit impossible de taper quelque chose dans la liste.

Ce n'est pas important car on teste la validité du choix

Seb33 a écrit :

e me rapproche de ce que je souhaite grace à ton exemple. Serait-il possible de commencer l'index à 1 et non à 0 ?

Rajoutes 1 à chaque valeur

Me.TextBox1 = (Me.ComboBox1.ListIndex +1) * (Me.ComboBox2.ListIndex + 1)
Seb33 a écrit :

Serait-il possible d'empecher la saisie manuelle dans la textbox ?

Propriéte Locked à mettre à True

Me.TextBox1.Locked = True

A placer dans la procédure UserForm_Initialize() ou à coder en dur

Rechercher des sujets similaires à "erreur code affectant valeur textbox"