Programmation d'une combobox

Fermé
raphi72 Messages postés 18 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 21 juin 2017 - 18 avril 2014 à 19:53
raphi72 Messages postés 18 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 21 juin 2017 - 7 mai 2014 à 21:28
Bonjour a tous,
J'ai un projet à réaliser sur excel, en utilisant VBA et c'est nouveau pour moi.
Je dois écrire un programme qui permet de calculer au mieux le dimensionnement d'une courroie et des poulies afin que la ou les courroies en fonction de l'effort à transmettre soient tendu au maximum. j'ai déja crée l'userform et mis les données dans plusieurs feuilles excel. j'ai regardé plusieurs videos et forum sur internet.

Mon problème est le suivant:

j'ai trois combobox à programmer sur vba:

la première permet de choisir l'utilisation journalière:
-8h/jour;
-16h/jour;
-24h/jour

la deuxième permet de choisir la variation du couple:
-uniforme;
-variable;
-très variable

la troisième permet de choisir le type d'utilisation:
-Moteur électrique usuel avec un couple de démarrage normal;
-Démarrage fréquents ou inversions des sens fréquents;
-Moteur électrique à couple de démarrage élevé, moteur synchrone,Moteur diesel;
-Inversion de sens,démarrages fréquents avec moteur à fort couple de démarrage

je me suis inspiré de ce que ceci: https://www.lecfomasque.com/excel-listes-deroulantes-dependantes/

Il faut donc d'abord choisir le couple: 3 choix possibles (niveau 1)
ensuite il faut choisir la variation du couple:3 choix possibles mais que je dois répéter 3 fois dans mon tableau excel donc cela me prends 9 lignes dans mon tableau excel.
enfin il faut choisir le type d'utilisation parmi 4 choix possibles que je dois répéter 9 fois dans mon tableau, cela me prends 36 lignes. Grâce aux trois choix dans l'userform qui sont imbriqués les uns dans les autres en quelque sorte on obtient une valeur parmi les 36 valeurs possibles en choisissant une donnée dans chaque combobox.

Je ne sais pas comment programmer cela sur excel pour le mettre dans le userform car sur le tuto que j'ai mis en lien elle fait ça directement sur le tableur excel.

C'est mon premier message que je poste sur ce forum et je ne sais pas s'il est possible de mettre mon fichiers excel en pièce jointe...

D'avance un grand merci à tous pour avoir de l'aide.
A voir également:

3 réponses

via55 Messages postés 14401 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 avril 2024 2 701
Modifié par via55 le 18/04/2014 à 23:47
Bonsoir

Pour joindre un fichier ti peux le poster sur cjoint.com et indiquer ici ensuite le lien fourni

Pour ma part j'attribuerai dans le tableau excel à chaque choix un code composé des 3 choix faits :
ainsi si on choisi la 1ere utilisation journaliere avec la 2eme variation et le 4eme type ce sera le code 124
Les choix faits par les combobox renverrait les même N°s qu'il suffirait de combiner (choix1 * 100 + choix 2 * 10 + choix 3) pour obtenir le code
Ensuite avec une recherchev (ou son equivalent en VBA Vlokup) on retrouve dans le tableau la valeur associée au code

Cdlmnt

"L'imagination est plus importante que le savoir." A. Einstein
0
raphi72 Messages postés 18 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 21 juin 2017
19 avril 2014 à 00:00
Je viens de mettre le fichier sur Cjoint.com, voici le lien:

http://cjoint.com/14av/DDsx1ZSc5n6.htm

La feuille qui est concerné pour les combobox est l'onglet concerné est la "feuil2", avec les couleurs afin de mieux s'y retrouver.

merci de cette réponse si rapide en tout cas :)
0
raphi72 Messages postés 18 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 21 juin 2017
19 avril 2014 à 00:10
Je suis désolé pour les fautes ainsi que les phrases maladroites, je ne me suis pas relus...
0
via55 Messages postés 14401 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 avril 2024 2 701
19 avril 2014 à 01:26
Voila une piste de travail

J'ai mis un bouton dans le dernier onglet pour faire apparaitre l'userform
chaque choix fait s'inscrit dans la feuil1 où le code est calculé et la valeur récupérée
Pour l'instant pour voir j'ai fait afficher chaque fois la valeur trouvée par une MsgBox, elles seront bien sur à supprimer par la suite. Tant que les 3 choix ne sont pas fait ça affiche non trouvé
L'ouverture de l'Userform remet à 0 les choix en feuil 1

https://www.cjoint.com/?0Dtbwptgdp2
0
raphi72 Messages postés 18 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 21 juin 2017
19 avril 2014 à 01:44
Je vous remercie beaucoup pour votre aide. J'aurai surement encore besoins de vos conseils pour la suite de mon projet.

cordialement

raphi
0
raphi72 Messages postés 18 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 21 juin 2017
30 avril 2014 à 15:40
Bonjour Via55,

J'ai besoin de votre aide.

Je suis a nouveau bloqué pour mon projet. J'ai écrit le code nécessaire afin que les valeurs écrites dans les TextBox et les combobox s'affichent sur une feuille excel que j'ai appelé CALCUL afin d'effectuer le calcul final.

Mon problème est le suivant je ne sais pas comment programmer le choix de la courroie parmi les 4 qui me sont proposés. Soit SPZ, SPA, SPB, SPC. j'ai comme support un document avec les caractéristiques des courroies qui est le suivant: https://www.cjoint.com/?DDEpbnWd8e1 . A partir de la page 13 de ce document, qui montre les différentes courbes pour chaque courroie, j'ai calculé les différentes fonctions affines, en respectant l'échelle logarithmique afin d'obtenir deux valeurs qui représentent a et b afin d'avoir la fonction affine ax+b. La feuille concerné est "fonction sp". ci-joint le fichier excel: https://www.cjoint.com/?DDEpji942OE . Afin de pouvoir se repérer sur le diagramme j'ai calculé PC (la puissance de calcul )qui est égale a Pnom(puissance nominale ) multiplié par S(le facteur de service S). Ensuite il suffit de prendre une valeur de Pc et nd (la vitesse d'entrée de la petite poulie) afin d'obtenir une valeur sur le diagramme.

Le problème est que je ne sais pas ce que je dois écrire dans mon programme afin qu'en fonction des valeurs de Pc et nd obtenu, je puisse faire un choix entre les différentes courroies. J'aimerai que si jamais la valeur obtenue est inférieure à la fonction, qui représente la partie croissante de spZ, alors la courroie utilisée sera SPZ et ainsi de suite si le point obtenu se trouve entre les fonctions de SPA et SPZ on choisira la courroie SPA et cela jusqu'à ce que la valeur limite pour SPC soit dépassée et que dans ce cas là, le programme retourne une erreur à l'utilisateur.

Merci d'avance pour votre aide.

Cordialement,

Raphi
0
via55 Messages postés 14401 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 17 avril 2024 2 701
30 avril 2014 à 16:00
Bonjour Raphi

Alors là ça devient un peu trop technique pour moi! On va essayer quand même

Pour simplifier: quelle valeur veux tu comparer (dans quelle cellule de quelle feuille se trouve-t-elle?) avec quelles valeurs de la feuille fonction sp (dans quelles cellules)

Peux tu me aussi donner un exemple réel chiffré qui m'aidera peut être à comprendre

Cdlmnt
0
raphi72 Messages postés 18 Date d'inscription vendredi 18 avril 2014 Statut Membre Dernière intervention 21 juin 2017
30 avril 2014 à 17:27
Merci d'avoir répondu si rapidement.

En effet c'est assez compliqué...Je vais essayer d'expliquer ça au mieux.

Alors dans la feuille fonction sp, si on prends par exemple le cas de la fonction SPZ on a le coefficient directeur de la droite "a "qui se situe dans la cellule B12 et on à le point "b" de la fonction affine qui se situe dans la cellule B13.
On obtient grâce à ces deux valeurs une droite avec une pente positive exactement la même que sur le diagramme dans le premier lien que j'ai mis dans mon premier message,sur la page 13 (c'est le schéma VP2) , mon prof m'a dit que ce n'était pas la peine de prendre en compte les valeurs pour lesquels la courbe décroit, par exemple sur le diagramme si on prend une valeur de 3600 tr/min en abscisse pour nd et de 40 kw pour Pc en ordonné ce sera la limite, on ne pourra pas prendre une valeur plus grande que 3600 pour nd car la courbe redescend ensuite.

Par exemple si je suis l'utilisateur et que je rentre une valeur dans ma textbox correspondant à la puissance nominale pnom et que j'obtiens le facteur de service S pour lequel vous m'aviez aidé la dernière fois je peux obtenir la valeur de Pc=Pnom*S dont le résultat se trouve dans la feuille CALCUL, dans la cellule C8 . L'utilisateur doit aussi saisir la valeur nd de la petite poulie dans la textbox "vitesse entrée"dont le resultat sera affiché dans la feuille CALCUL, dans la cellule C3.

Imaginons que j'obtient comme valeur:
Pc=4 et nd =730 l'endroit ou se croise les deux valeurs donne un point inférieur à la courbe SPZ dont on ne s'occupe que de la droite croissante qui est représenté par la fonction SPZ que j'ai calculé dans les cellules B12 =>(valeur de a=0,956189975)et B13=>(valeur de b=-1,550652114).
ce qui donne ax+b=0,956189975x+(-1,550652114).

Si je prenais maintenant pc=200 et nd=910 on voit que le point d'intersection des deux valeurs se trouve entre les deux courbes correspondant à SPB et SPC donc entre mes deux fonctions que j'ai calculé dans la feuille fonction sp qui sont similaires à la fonction SPZ, de forme ax+b.

j'espère que ce sera plus facile à comprendre comme cela :-)

cordialement,


Raphi
0