Code VBA

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

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    mais ça ne marche pas .
    Si tu commençais par dire ce qui ne marche pas ?
    1. 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.