Code VBA

Fermé
saly - 8 févr. 2013 à 13:02
 tessel75 - 8 févr. 2013 à 21:22
Bonjour,

J'ai un petit soucis aavec mon code VBA
je veux utiliser la fonction IF et affecter la valeur obtenue à une cellule nommé priorité
le champs priorité est conditionné par deux autres champs nommés result et urgence. voici le code:

Public Function Implication(result As Double, Urgence As String) As String


Dim Priorité As String


If result = 1 And Urgence = normal Then Priorité = faible
If result = 1 And Urgence = urgent Then Priorité = faible
If result = 2 And Urgence = normal Then Priorité = faible
If result = 2 And Urgence = urgent Then Priorité = faible
If result = 3 And Urgence = normal Then Priorité = haute
If result = 3 And Urgence = urgent Then Priorité = haute
If result = 4 And Urgence = normal Then Priorité = haute
If result = 4 And Urgence = urgent Then Priorité = haute
If result = 5 And Urgence = normal Then Priorité = haute
If result = 5 And Urgence = urgent Then Priorité = haute

Implication = Priorité


End Function

Private Sub priorité_AfterUpdate()

Implication

End Sub
J'ai même changé la source contrôle dans les propriétés de la cellule "priorité" t j'ai mis comme source la fonction Implication mais ça ne marche pas .
Si quelqu'un peut m'aider ça sera vraiment gentil
A voir également:

2 réponses

blux Messages postés 26396 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 octobre 2024 3 308
8 févr. 2013 à 15:54
Salut,

mais ça ne marche pas .
Si tu commençais par dire ce qui ne marche pas ?
0
Bonsoir,
Pourquoi faire simple quand on peut faire tellement plus compliqué, n'est ce pas?
A te lire, il parait sauter aux yeux que :

If result <3 Then
Priorité = "faible"
ElseIf result > 2 then
Priorité = "haute"
End if


Déjà les compléments à la condition ne servent à rien, au moins dans ton expression. Ensuite il faudrait ne pas oublier les guillemets sinon VBA comprendra que "Faible" et "Haute" sont des paramètres internes à la procédure et non pas des valeurs. Enfin j'ai utilisé "Result" mais sans savoir ce que c'est? Tu ne le dis pas; pourtant ça pourrait rendre service.

Enfin tu écris :
"Public Function Implication(result As Double, Urgence As String) As String
... ... Tatatata ... ...
Implication = Priorité
End Function

Private Sub priorité_AfterUpdate()
Implication
End Sub
"

Pourquoi ne pas écrire directement
"If ... then Implication = "Faible" ou "Forte" "
Et pourquoi une fonction et une procédure Sub ? Pourquoi ne pas utiliser la fonction directement dans ton formulaire ou ton état.
Bonne suite.
0