Select case ou If then...

Résolu
lolo_bob2 Messages postés 14 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 25 avril 2006 - 24 avril 2006 à 09:55
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 25 avril 2006 à 20:01
Bonjour à tous

J'ai déjà posée la question mais je viens d'essayer une solution mais ca ne fonctionne pas pouvez vous me dire pourquoi ?
Voila j'ai créé un formulaire avec plusieurs liste de choix
une liste qui s'appelle nom produit/designation une autre qui s'appelle niveau/level et un champ prix/price

je voudrais que lorsque je selectionne 1 niveau et un produit j'ai un prix qui s'affiche:
ex niveau :niveau 1 & produit: longe corde prix =18,3 ?

je tape ce code:

<!-- BEGIN TEMPLATE: bbcode_code -->

Private Sub Form_AfterUpdate()If Niveau_de_réparation_level_of_repair.Value "niveau 1" And Nom_produit_designation.Value "longe corde" Then
Prix_price.Value = "18,30"
End If
End Sub

Dans mon formulaire je ne peux plus selectionner mon produit a chaque fois que je le selectionne dans la liste deroulant il ne s'affiche pas dans le champ...
De plus j'ai peu de produits et de prix à rentrer est ce qu'il ne faudrait pas plutot utiliser Select Case longe corde case is...?
Merci de vos réponses je galère de trop sur ce sujet là...
A+<!-- / message -->

12 réponses

lolo_bob2 Messages postés 14 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 25 avril 2006
25 avril 2006 à 09:57
Salut Mortalino

c'est bon j'ai réussi à resoudre mon problème merci beaucoup
A+
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 avril 2006 à 10:08
Salut,

Private Sub Form_AfterUpdate()If Niveau_de_réparation_level_of_repair.Value "niveau 1" And Nom_produit_designation.Value "longe corde" Then
Prix_price.Value = "18,30"
End If
End Sub


Je suppose que Niveau_de_réparation_level_of_repair & Nom_produit_designation sont des ComboBox,
dans ce cas, essaie ça

Private Sub Nom_produit_designation_
Change ()
If Nom_produit_designation.Value <> "" And Niveau_de_réparation_level_of_repair.Value <> "" Then

If Niveau_de_réparation_level_of_repair.Value = "niveau 1" _
And Nom_produit_designation.Value = "longe corde" then
Prix_price.Value = "18,30"
End If
End If
End Sub
' Là en gros, lorsque la valeur de "Nom_produit_designation" change, il vérifie que rien ne soit vide et place 18.30 si la condition est vraie.

Select Case traite également des conditions. C'est plus lisible mais utilise celui avec lequel tu es le plus à l'aise

@ ++

Mortalino
0
lolo_bob2 Messages postés 14 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 25 avril 2006
24 avril 2006 à 11:03
Ok merci beaucoup

il faut bien que le code se trouve au niveau du formulaire et non pas d'une combobox ?
En fait j'ai plusieurs produit et prix c'est a dire que suivant le produit et le niveau le prix n'est pas le même...
C'est pour ca que je demandais si il ne fallait pas plutot utiliser un select case
En fait je suis novice et je suis pas trop à l'aise avec le VB
Quel seris la syntaxe d'un select case lorsque j'ai plusieurs produits, plusieurs niveau et plusieurs prix ?
Merci beaucoup Mortalino
A+
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 avril 2006 à 11:18
Dans ce cas essaie

Private Sub Form_AfterUpdate()
Dim NiveauRepLevel As String, NomProd As String
NiveauRepLevel = Niveau_de_réparation_level_of_repair.Value
NomProd = Nom_produit_designation.Value

Select Case NiveauRepLevel
Case "niveau 1": 'Si niveau 1 séléctionné
Select Case NomProd
Case "longe corde":
Prix_price.Value = "18,30"
Case "produit 2":
Prix_price.Value = "XX,XX"
Case "produit3":
Prix_price.Value = "XX,XX"
etc...
End Select
Case "niveau 2": 'Si niveau 2 séléctionné
Select Case NomProd
Case "longe corde":
Prix_price.Value = "18,30"
Case "produit 2":
Prix_price.Value = "XX,XX"
Case "produit3":
Prix_price.Value = "XX,XX"
etc...
End Select
End Select

End Sub


Voit si c'est bon. si tu veux des précisions, n'hésite pas

Mortalino
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lolo_bob2 Messages postés 14 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 25 avril 2006
24 avril 2006 à 11:43
Ok merci beaucoup

Je vais essayer cette solution
Je te redis ça dans la journée
Je vais enfin arriver à faire cette manipulation qui me préoccupe depuis longtemps...
Merci Mortalino
A+

lolo_bob2
0
lolo_bob2 Messages postés 14 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 25 avril 2006
24 avril 2006 à 11:57
Salut Mortalino

Je viens de faire l'essai avec deux produits

voici le code :

Private Sub Form_AfterUpdate()
Dim NiveauRepLevel As String, NomProd As String
NiveauRepLevel = Niveau_de_réparation_level_of_repair.Value
NomProd = Nom_produit_designation.Value


Select Case NiveauRepLevel
Case "niveau 1": 'Si niveau 1 séléctionné
Select Case NomProd
Case "longe corde":
Prix.Value = "18,30"
Case "harnais":
Prix.Value = "20,30"

End Select

Case "niveau 2": 'Si niveau 2 séléctionné
Select Case NomProd
Case "longe corde":
Prix.Value = "30,00"
Case "harnais":
Prix.Value = "50,00"

End Select
End Select


End Sub

Donc je le met sur Apres MAJ, je reviens sur mon formulaire en mode formulaire et lorsque je selectionne le niveau 1 et le produit longe corde le prix n'apparait pas
Le champ prix est un champ independant.
D'où peut provenir l'erreur ?
Merci beaucoup
A+ tard
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 avril 2006 à 17:37
Par contre question bête, c'est quoi comme contrôle ton
Niveau_de_réparation_level_of_repair
Tu travailles sur une BDD Access ?
0
lolo_bob2 Messages postés 14 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 25 avril 2006
24 avril 2006 à 17:51
Salut Mortalino

je travaille sur BD Access effectivement...
Le bouton Niveau_de_réparation_level_of_repair est une zone de liste modifiable...
Voila pour le plus d'informations
ce soir j'ai réessayé mais ca ne fonctionnait toujours pas
A+
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 avril 2006 à 20:06
Ben concernant Access, j'ai fait une BDD mais il y a bien longtemps (dans une galaxie lointaine).
Donc actuellement je n'ai pas de solution mais je regarderai dans ma bible ce soir et si je trouve je te met un Post demain matin (sauf si une âme charitable à la soluce de tête).
Désolé
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
24 avril 2006 à 20:12
Par contre, remplace le terme "Value" par "Text", j'ai regardé 2 / 3 codes et c'est ce terme qui est employé
0
lolo_bob2 Messages postés 14 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 25 avril 2006
24 avril 2006 à 21:05
ok merci beaucoup


j'essaye ça dès demain matin


en tout cas merci de te pencher de près à mon problème...


Bonne soirée
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
25 avril 2006 à 20:01
Salut lolo_bob2,

Tant mieux si tu as trouvé car moi je me suis rencarder, et VBA Access c'est particulier comme syntaxe.

Bien vu et @ ++

Mortalino
0
Rejoignez-nous