Userform
Résolu
mchotard
Messages postés
491
Statut
Membre
-
baladur13 Messages postés 50033 Statut Modérateur -
baladur13 Messages postés 50033 Statut Modérateur -
Bonjour
J'ai construit une userform pour un formulaire de saisie comprenant entr'autre une comboBox4 et une textBox16
ma demande
Pour alimenter ma comboBox4 j'ai une liste déroulante A-B-C-D etc..
Puis j'ai une textbox 16 qui devrait inscrire le tarif correspondant au tableau nommé "Tarif" ci dessous. ce tableau est dans une feuille excel
Catégories Tarif
A 2
B 2,5
C 3
D 4
Ainsi, si j'inscris A dans la comboBox4 , ma textbox16 devrait indiquer 2
puis si B, = 2.5 etc.;
Et cela dès que je renseigne ma comboBox4.
Malgré de nombreuses tentatives en essayant d'utiliser des formules divers de certains forum, je n'arrive pas à l'adapter à mon cas.
Si quelqu'un peut m'aider ce serait sympa.
Merci à tous
J'ai construit une userform pour un formulaire de saisie comprenant entr'autre une comboBox4 et une textBox16
ma demande
Pour alimenter ma comboBox4 j'ai une liste déroulante A-B-C-D etc..
Puis j'ai une textbox 16 qui devrait inscrire le tarif correspondant au tableau nommé "Tarif" ci dessous. ce tableau est dans une feuille excel
Catégories Tarif
A 2
B 2,5
C 3
D 4
Ainsi, si j'inscris A dans la comboBox4 , ma textbox16 devrait indiquer 2
puis si B, = 2.5 etc.;
Et cela dès que je renseigne ma comboBox4.
Malgré de nombreuses tentatives en essayant d'utiliser des formules divers de certains forum, je n'arrive pas à l'adapter à mon cas.
Si quelqu'un peut m'aider ce serait sympa.
Merci à tous
2 réponses
Bonjour
Dans l'editeurVBA ton userform affichée tu doubles clic sur ta combobox
puis tu rentres le code suivant :
Il faut adapter la référence au tableau tarif Sheets("Feuil1").Range("A3:B6"), 2, 0) avec le nom de ta feuille où il se trouve et les bonnes références de cellules
Cdlmnt
Dans l'editeurVBA ton userform affichée tu doubles clic sur ta combobox
puis tu rentres le code suivant :
Private Sub ComboBox1_Change() t = Application.WorksheetFunction.VLookup(ComboBox4.Value, Sheets("Feuil1").Range("A3:B6"), 2, 0) 'A ADAPTER TextBox16.Value = t End Sub
Il faut adapter la référence au tableau tarif Sheets("Feuil1").Range("A3:B6"), 2, 0) avec le nom de ta feuille où il se trouve et les bonnes références de cellules
Cdlmnt
merci Via55
Il me semble avoir fait ce que tu m'as proposé, mais quand je rentre une lettre dans ma combobox4, j'ai un messager : "erreur de compilation, variable non définie".
Tu trouveras ci dessous ma formule adaptée à mon fichier. J'ai sans doute omis quelque chose, mais quoi?
faut-il adapté les 2,0
Désolé de te déranger à nouveau
CDLMNT
MC
Il me semble avoir fait ce que tu m'as proposé, mais quand je rentre une lettre dans ma combobox4, j'ai un messager : "erreur de compilation, variable non définie".
Tu trouveras ci dessous ma formule adaptée à mon fichier. J'ai sans doute omis quelque chose, mais quoi?
faut-il adapté les 2,0
Private Sub ComboBox4_Change() t = Application.WorksheetFunction.VLookup(ComboBox4.Value, Sheets("Constantes").Range("f33:g39"), 2, 0) 'A ADAPTER TextBox16.Value = t End Sub
Désolé de te déranger à nouveau
CDLMNT
MC
Bonjour,
Lorsque vous placez du code sur notre forum, merci d'utiliser les balises code à votre disposition.
Le mode d'emploi (au cas ou) est ICI.
Cordialement,
Pijaku
Lorsque vous placez du code sur notre forum, merci d'utiliser les balises code à votre disposition.
Le mode d'emploi (au cas ou) est ICI.
Cordialement,
Pijaku
Bonjour mchotard
La formule est bonne, le 2 va chercher la valeur en colonne 2 en recherchant une correspondance exacte (le 0)
Si tu as ce message d'erreur c'est vraisemblablement (impossible d'en dire plus sans voir le fichier) que soit la variable t n'est pas définie alors que tu as mis Option explicit en tête de module soit qu'il ne reconnait pas le nom "Constantes"
Commence par mettre en tête de module la déclaration :
Dim t as single
Si ça ne marche toujours pas vérifie la bonne écriture du nom de ta feuille Constantes
Si malgré tout tu es toujours bloqué post un exemple allégé et anonymé de ton fichier sur cjoint.com et reviens indiquer le lien fourni
Cdlmnt
La formule est bonne, le 2 va chercher la valeur en colonne 2 en recherchant une correspondance exacte (le 0)
Si tu as ce message d'erreur c'est vraisemblablement (impossible d'en dire plus sans voir le fichier) que soit la variable t n'est pas définie alors que tu as mis Option explicit en tête de module soit qu'il ne reconnait pas le nom "Constantes"
Commence par mettre en tête de module la déclaration :
Dim t as single
Si ça ne marche toujours pas vérifie la bonne écriture du nom de ta feuille Constantes
Si malgré tout tu es toujours bloqué post un exemple allégé et anonymé de ton fichier sur cjoint.com et reviens indiquer le lien fourni
Cdlmnt
Super c'est bon avec Dim t as single, ça marche
Une dernière demande si tu peux
J'ai une textbox15 = nombre de billets
et une textbox 16 = tarif
dans une textbox 13 = montant dû, je voudrais qu'il me calcule le montant directement soit le nombre de billet * par le tarif
J'ai entré essayé 2 formules mais aucune ne marche, pourquoi?
Merci
Cdlmnt
MC
Une dernière demande si tu peux
J'ai une textbox15 = nombre de billets
et une textbox 16 = tarif
dans une textbox 13 = montant dû, je voudrais qu'il me calcule le montant directement soit le nombre de billet * par le tarif
J'ai entré essayé 2 formules mais aucune ne marche, pourquoi?
Private Sub TextBox1_Change() If Val(TextBox3.Value) <> 0 Then TextBox13 = Val(TextBox15) * Val(TextBox16) End Sub Private Sub TextBox1_Change() If Val(TextBox3.Value) <> 0 Then TextBox13.Value = Format(Val(TextBox15.Value) * Val(TextBox16.Value) End Sub
Merci
Cdlmnt
MC