Utiliser information dans une liste déroulante UserForm
Bonjour !
Grande débutante en VBA, je viens vous demandez de l'aide!
J'essaye de créer un formulaire grâce à UserForm, j'ai introduis une liste déroulante qui me propose différentes gammes soit 1,2,3 et j'ai également un TextBox qui me permet d'insérer le nombre de vis du produit. Suite à ça je veux afficher le temps de production de mon produit.
Exemple : Si je choisis la gamme 1, avec 200 vis j'aimerais utiliser cette formule: t1 = 0.20* nombre_vis + 0.10
Or si je choisis la gamme 2 avec toujours 200 vis j'ai une autre formule : t1 = 0.18 * nombre_vis + 0.15
Et ainsi de suite pour mes différentes gammes.
Mon code fonctionne avec mes If, mais j'aimerais savoir si il existe une autre manière pour réaliser ceci plutôt que de faire autant de boucle?
Ci-joint ma production, ce n'est qu'une petite partie mais j'essaye d'y aller pas à pas. Si celà vous semble mauvais veuillez m'excuser de mon incompétence et m'aider à m'améliorer. :)
Une autre petite question : existe t il une formule qui me permet de regrouper tout mes "Or" ? Pour une autre projet j'ai la ligne suivante : If nombre_vis = "" Or nombre_bois = "" Or nombre_serrure = "" Or .....
Bonjour,
Tu peux utiliser un tableau avec les valeurs souhaitées et ensuite utiliser toujours la même formule en utilisant un tableau avec un index différent en fonction du numéro de gamme choisi.
La place qu'on gagne en économisant les "If" se perd en initialisant le tableau, après c'est une histoire de préférence.
Tu peux copier/coller ce code à la place du tiens, ça marche parfaitement de mon coté.
Private Sub afficher_Click()
Dim tab_vis(2, 1) As Double
tab_vis(0, 0) = 0.1077870047
tab_vis(0, 1) = 0.1094871795
tab_vis(1, 0) = 0.1505807783
tab_vis(1, 1) = 0.156875
tab_vis(2, 0) = 0.1811285024
tab_vis(2, 1) = 0.2302222222
If textvis.Value <> "" Then
nombre_vis = textvis.Value
Else
MsgBox "Veuillez saisir le nombre de vis"
Exit Sub
End If
If comboboxgamme.Value <> "" Then
If numero_gamme < 4 Then
numero_gamme = comboboxgamme.Value - 1
Else
MsgBox "Veuillez saisir un numéro de gamme valide"
End If
Else
MsgBox "Veuillez saisir le numéro de gamme"
Exit Sub
End If
valeur_finale = tab_vis(numero_game, 0) * nombre_vis + tab_vis(numero_gamme, 1)
MsgBox valeur_finale
End Subessayer avec cette présentation :