[VBA] vérifier et affecter une valeur
Résolu/Fermé
A voir également:
- [VBA] vérifier et affecter une valeur
- Verifier un lien - Guide
- Verifier compatibilite windows 11 - Guide
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Incompatibilité de type vba ✓ - Forum Programmation
3 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
Modifié par Bidouilleu_R le 6/07/2010 à 15:57
Modifié par Bidouilleu_R le 6/07/2010 à 15:57
je pense que ça marche pas ....
je l'écrirai comme ça
je l'écrirai comme ça
Dim sav_prd_typ sav_prd_typ = "" If (Me.prd_typ.Value) = "Fast Track" Then 'ici je vérifie la valeur du champ sav_prd_typ = 795 ' j'affecte une valeur Else If (Me.prd_typ.Value) = "Special" Then 'je vérifie la valeur du meme champ sav_prd_typ = 765 'j'affecte une autre valeur Else If (Me.prd_typ.Value) = "Derived" Then 'je verifie la valeur du meme champ if [prd_techno]="rouge" then sav_prd_typ =987 end if endif
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
7 juil. 2010 à 09:46
7 juil. 2010 à 09:46
ton code devrait être comme ça !
mais je trouve qu'il n'est pas clair ...lisible au premier coup d'oeil
je te propose de l'écrire comme ça.
C'est la même chose mais beaucoup plus clair non?
Dim sav_prd_typ sav_prd_typ = "" If Me.prd_typ = "Fast Track" Then sav_prd_typ = "795" ElseIf Me.prd_typ = "Special" Then sav_prd_typ = "765" ElseIf Me.prd_typ = "LED" Then sav_prd_typ = "764" Else sav_prd_typ = "766" End If
mais je trouve qu'il n'est pas clair ...lisible au premier coup d'oeil
je te propose de l'écrire comme ça.
C'est la même chose mais beaucoup plus clair non?
Dim sav_prd_typ sav_prd_typ = "" Select Case Me.prd_typ Case "Fast Track" sav_prd_typ = "795" Case "Special" sav_prd_typ = "765" Case "LED" sav_prd_typ = "764" Case Else sav_prd_typ = "766" End Select
Bonjour Bidouilleu_R,
je me suis certainement mal exprimé car en faite je cherche à récupèrer la valeur selectionné par l'utilisateur, d'une listbox.
Pour faire simple voila mon souci plus clairement :
La listbox1 contient 3 valeurs (pour faire simple) : vert, jaune et rouge
si je choisis "vert" alors MaVariable = 123
si je choisis "jaune" alors MaVariable = 456
si je choisis "rouge" alors je vérifie la valeur selectionné dans une 2ieme listbox2 et donc
si la valeur de ma listbox2 est "noir" alors MaVariable = 789
sinon MaVariable = 321
Je vais essayer de le faire avec un select case comme tu l'a fait (en l'adaptant biensurs)
Je te tien au courant du résultat.
Merci de ton aide
je me suis certainement mal exprimé car en faite je cherche à récupèrer la valeur selectionné par l'utilisateur, d'une listbox.
Pour faire simple voila mon souci plus clairement :
La listbox1 contient 3 valeurs (pour faire simple) : vert, jaune et rouge
si je choisis "vert" alors MaVariable = 123
si je choisis "jaune" alors MaVariable = 456
si je choisis "rouge" alors je vérifie la valeur selectionné dans une 2ieme listbox2 et donc
si la valeur de ma listbox2 est "noir" alors MaVariable = 789
sinon MaVariable = 321
Je vais essayer de le faire avec un select case comme tu l'a fait (en l'adaptant biensurs)
Je te tien au courant du résultat.
Merci de ton aide
J'ai donc mis cela :
Select Case Me.listbox1
Case "vert"
sav_prd_typ = "795"
Case "jaune"
sav_prd_typ = "765"
Case "rouge"
Select Case Me.listbox2hno
Case "LED"
sav_prd_typ = "764"
Case Else
sav_prd_typ = "766"
End Select
End Select
Malheureusement quelque soit mon choix dans les lisbox1 et 2 je récupère toujours la valeur 766.
Select Case Me.listbox1
Case "vert"
sav_prd_typ = "795"
Case "jaune"
sav_prd_typ = "765"
Case "rouge"
Select Case Me.listbox2hno
Case "LED"
sav_prd_typ = "764"
Case Else
sav_prd_typ = "766"
End Select
End Select
Malheureusement quelque soit mon choix dans les lisbox1 et 2 je récupère toujours la valeur 766.
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
7 juil. 2010 à 10:32
7 juil. 2010 à 10:32
mieux expliquer comme ça?
Dim sav_prd_typ sav_prd_typ = "" Select Case Me.listbox1.value Case "vert" sav_prd_typ = "123" ' traite le vert Case "jaune" sav_prd_typ = "456" ' traite le jaune Case "rouge" sav_prd_typ = "789" ' traite le rouge Case Else sav_prd_typ = "10 11 12" ' traite le reste de l'arcenciel sauf vert jaune rouge End Select
Encore moi,
Désolé mais la valeur de sav_prd_typ reste toujours la meme et ce quelque soit le choix dans ma zone de liste 1.
sav_prd_typ prend toujours la valeur donnée après le ELSE, ici "10 11 12"
Par contre je vois que tu ne prend pas en considération ma 2ieme listbox, est-ce normal ?
S'en ca tes explications sont tres claires ! Merci.
Désolé mais la valeur de sav_prd_typ reste toujours la meme et ce quelque soit le choix dans ma zone de liste 1.
sav_prd_typ prend toujours la valeur donnée après le ELSE, ici "10 11 12"
Par contre je vois que tu ne prend pas en considération ma 2ieme listbox, est-ce normal ?
S'en ca tes explications sont tres claires ! Merci.
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
7 juil. 2010 à 14:17
7 juil. 2010 à 14:17
sur quel évènement utilises-tu cette procédure?
pour le deuxième listbox - j'ai du zappé quelquechose...
j'essaie d'analyser
pour le deuxième listbox - j'ai du zappé quelquechose...
j'essaie d'analyser
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
7 juil. 2010 à 14:35
7 juil. 2010 à 14:35
si tu as utilisé ListBox1_Click il est possible que Me.listbox2hno est toujours la valeur null.
J'utilise l'évènement Click sur un autre champ que celui des listbox1 et 2.
Private Sub Champs3_Click()
Dim sav_prd_typ
sav_prd_typ = ""
Select Case Me.listbox1.Value
Case "vert"
sav_prd_typ = "795"
Case "jaune"
sav_prd_typ = "765"
Case "rouge"
Select Case Me.listbox2.Value
Case "noir"
sav_prd_typ = "764"
Case Else
sav_prd_typ = "766"
End Select
End Select
If IsNull(Me.Champs3) Then
Me.Champs3= Module1("Table", "Champs3", "0008222" & sav_prd_typ, 3)
End If
End Sub
J'ai besoin de récupèrer ses valeurs pour les intègrer à un numéro auto personnalisé qui se trouve sur le Champs3.
Private Sub Champs3_Click()
Dim sav_prd_typ
sav_prd_typ = ""
Select Case Me.listbox1.Value
Case "vert"
sav_prd_typ = "795"
Case "jaune"
sav_prd_typ = "765"
Case "rouge"
Select Case Me.listbox2.Value
Case "noir"
sav_prd_typ = "764"
Case Else
sav_prd_typ = "766"
End Select
End Select
If IsNull(Me.Champs3) Then
Me.Champs3= Module1("Table", "Champs3", "0008222" & sav_prd_typ, 3)
End If
End Sub
J'ai besoin de récupèrer ses valeurs pour les intègrer à un numéro auto personnalisé qui se trouve sur le Champs3.
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
7 juil. 2010 à 17:31
7 juil. 2010 à 17:31
le code est correct!
il faut que tu vérifie le contenu des listbox dans la procedure
s=msgbox("listbox1 = " & me.listbox1.value & chr(10) & "listbox2 = " & me.listbox2.value,vbyeno,"titre")
tu mets ça dans ta procedure (à plusieurs endroits) et tu verras ce qui se passe
il y a aussi l'espion du debuggueur
il faut que tu vérifie le contenu des listbox dans la procedure
s=msgbox("listbox1 = " & me.listbox1.value & chr(10) & "listbox2 = " & me.listbox2.value,vbyeno,"titre")
tu mets ça dans ta procedure (à plusieurs endroits) et tu verras ce qui se passe
il y a aussi l'espion du debuggueur
6 juil. 2010 à 17:24
Ca devrait fonctionner mais je ne peux vérifier, car la vérification que je fait sur la valeur du champ [prd_typ] afin de savoir si il s'agit d'un "fast track"; "special" ou "derived" ne fonctionne pas, je recupère tout le temps la valeur 766. (je sais pas si je suis suffisament clair)
Voici mon nouveau code :
Dim sav_prd_typ
sav_prd_typ = ""
If (Me.prd_typ) = "Fast Track" Then
sav_prd_typ = "795"
Else
If (Me.prd_typ) = "Special" Then
sav_prd_typ = "765"
Else
If (Me.prd_techno) = "LED" Then
sav_prd_typ = "764"
Else
sav_prd_typ = "766"
End If
End If
End If
Merci pour l'aide apportée !