Userform

Résolu
mchotard Messages postés 457 Date d'inscription   Statut Membre Dernière intervention   -  
baladur13 Messages postés 47790 Date d'inscription   Statut Modérateur Dernière intervention   -
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

2 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour

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
0
mchotard Messages postés 457 Date d'inscription   Statut Membre Dernière intervention   43
 
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

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
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
0
mchotard Messages postés 457 Date d'inscription   Statut Membre Dernière intervention   43 > via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention  
 
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?

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
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > mchotard Messages postés 457 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir

et simplement
 If TextBox3.Value <> 0 Then TextBox13 = TextBox15 * TextBox16

ne marche pas ?

Sinon post un exemple de ton fichier sur cjoint.com comme demandé précédemment

Cdlmnt
0
mchotard Messages postés 457 Date d'inscription   Statut Membre Dernière intervention   43 > via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention  
 
Merci via55
Comment je fais pour t'envoyer mon fichier car malgré de nombreuses tentatives je n'y arrive pas.
Dans la fenêtre de réponse je ne trouve pas
Cdlmnt
0