Liste déroulante avec macro [Résolu/Fermé]

Messages postés
52
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
30 août 2019
-
Bonjour,

ça fait un moment que j'essai de faire une liste déroulante qui active un calcul différent selon le choix de l'utilisateur, en m'aidant de différents forums autour de ce sujet. Et je n'arrive à rien, je dois mal m'y prendre. là encore, je débute...

Bref, je fais une liste déroulante activeX. Le cadre se trouve en cells.(5 , 40) et ma liste en colonne 43. Bon déjà j'ai fini par comprendre comment faire pour que ma liste y apparaisse.

L'opérateur inscrit dans une case cells(9 , 37) la quantité reçue en kg et en sélectionnant le choix approprié, il aura dans la case en dessous la qté en litre selon la densité du produit.
Ma liste est composée de densité différente selon le type de produit : exemple "javel (1.263)" etc.
A chaque choix, un calcul doit donc se lancer :

cells(10 , 37) 'résultat = cells (9 , 37) * 1.263 'pour la javel. c'est donc un autre multiplicateur pour le choix suivant.

et j'arrive à rien notamment parce que je manipule des codes que je ne saisie pas vraiment...
exemple de là où j'en suis après plusieurs recherches :
 Private Sub frequence_Click()
Select Case frequence.Value
        Case "Choix du produit"
        Exit Sub
        Case "Javel (1,263)"
        Cells(10, 37) = Cells(9.37) * 1.263
        Case "Acide Sulfurique (1,85)"
        Cells(10, 37) = Cells(9.37) * 1.85
        Case "Soude (1,52)"
        Cells(10, 37) = Cells(9.37) * 1.52
        Case "Sulfate d'Alumine (1,4)"
        Cells(10, 37) = Cells(9.37) * 1.4
        Case "Acide Phosphorique (1,6)"
        Cells(10, 37) = Cells(9.37) * 1.6
 End Select
End Sub


Pouvez-vous m'aider ? et même si vous avez une idée pour faire un truc plus classe que la liste déroulante, je suis preneur !!

merci à vous !
Afficher la suite 

2 réponses

Messages postés
14790
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 octobre 2019
1177
0
Merci
Bonjour,

Private Sub frequence_Click()

C'est un bouton ou ...???????
f894009
Messages postés
14790
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 octobre 2019
1177 -
Re,

Pas Click mais Change

Private Sub frequence_Change()
stitchbouck
Messages postés
52
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
30 août 2019
1 -
Bonjour,

merci, mais ça ne suffit pas... j'ai même rajouter les ".value" des fois que , mais non les calculs ne se lancent pas quand je sélectionne un choix...

Private Sub frequence_Change()
Select Case frequence.Value
Case "Choix du produit"
Exit Sub
Case "Javel (1,263)"
Cells(10, 37).Value = Cells(9, 37).Value * 1.263
Case "Acide Sulfurique (1,85)"
Cells(10, 37).Value = Cells(9, 37).Value * 1.85
Case "Soude (1,52)"
Cells(10, 37).Value = Cells(9, 37).Value * 1.52
Case "Sulfate d'Alumine (1,4)"
Cells(10, 37).Value = Cells(9, 37).Value * 1.4
Case "Acide Phosphorique (1,6)"
Cells(10, 37).Value = Cells(9, 37).Value * 1.6
End Select
End Sub


le code est mis dans la feuille contenant la liste déroulante ActiveX. J'ai essayé sur un module aussi et ça n'a rien changé non plus.
f894009
Messages postés
14790
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 octobre 2019
1177 -
Bonjour,
Votre code marche......!
Mais vous devez saisir vos Kg avant de choisir votre produit

fichier test: https://mon-partage.fr/f/VxsMujJV/
stitchbouck
Messages postés
52
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
30 août 2019
1 -
oui, je vois que ça fonctionne sur votre fichier mais pas sur le mien. je viens de voir que la feuille où on écrit le code reste en "général" et "frequence_change" alors que la vôtre est en "frequence" et "change"... et il ne me propose que "worsheet" ou "combobox1" à la place de "général" et "déclaration" à la place de "change".

je ne sais pas si je suis clair...
stitchbouck
Messages postés
52
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
30 août 2019
1 -
et j'ai trouvé comment modifier ça, en changeant le nom de ma combobox dans les propriétés :):):) merci encore !!!
Messages postés
52
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
30 août 2019
1
0
Merci
Bonjour,

je reviens sur ce sujet car j'ai une autre requête pour compléter le code svp.

en effet, la macro fonctionne mais présente des lacunes : lorsque l'on est sur un des choix et que l'on change la qté, la valeur ne se calcule pas d'elle même. il faut aller sur un autre choix, n'importe lequel puis revenir sur le choix d'origine.

y-a-t-il un moyen, toujours en passant par ce système de liste déroulante, pour que le calcul se fasse dès lors qu'il y a une qté renseignée avec le choix déjà sélectionné ?

Private Sub frequence_Change()
Select Case frequence.Value
Case "Choix du produit"
Exit Sub
Case "Javel (1,263)"
Cells(10, 37).Value = Cells(9, 37).Value / 1263
Case "Acide Sulfurique (1,85)"
Cells(10, 37).Value = Cells(9, 37).Value / 1850
Case "Soude (1,52)"
Cells(10, 37).Value = Cells(9, 37).Value / 1520
Case "Sulfate d'Alumine (1,4)"
Cells(10, 37).Value = Cells(9, 37).Value / 1400
Case "Acide Phosphorique (1,6)"
Cells(10, 37).Value = Cells(9, 37).Value / 1600
Case Else
End Select
End Sub


Merci !
stitchbouck
Messages postés
52
Date d'inscription
mercredi 12 janvier 2011
Statut
Membre
Dernière intervention
30 août 2019
1 -
solution trouvée :)

a rajouter sur la feuille contenant le code et la liste déroulante :

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Target.Address(0, 0) = "AK9" Then frequence_Change

Application.EnableEvents = True

End Sub


merci à Theze !