Saisie Algorithme en VBA

Résolu
Bonjour à tous,

Bon je suis nulle en informatique, mais je dois saisir un algorithme en VBA.
Je suis donc dans mon logiciel, je rentre mon algorithme mais ça marche pas !
Plein de problèmes que je n'arrive pas à résoudre... Au niveau de la syntaxe, des fins d'instructions, bref des trucs qui me sont totalement inconnus !

Voici mon algorithme :

Public Function Commission(CA As Double)

'Fonction qui calcule la commission du représentant selon le barême par tranche

If CA < 2500 Then
Commission = 2500 * 25
Elself CA < 5000 Then
Commission = 2500 * 0.025 + (CA - 2500) * 0.05
Else
Commission = 2500 * 0.025 + 2500 * 0.05 + (CA - 5000) * 0.07
End If

End Function


La première ligne est surlignée en jaune. Et apparemment toute mes autres lignes ont des erreurs de syntaxe... Pas besoin de préciser que mon truc ne fonctionne pas, bref !

Merci de m'éclairer ! (et d'éviter les mots trop complexes :D )

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

4 réponses

  1. Contributeur
    bonjour,

    avec des IF en cascade , il vaut mieux utiliser Select case

    voir


    1. Bonjour,
      Oui c’est vrai quand il y a beaucoup de if. Là il n’y en que 3 et comme elle débute, je ne lui en ai pas parlé
    2. Contributeur
      Bonjour
      même à 3 , ça vaut le coup!
      remarque au passage: ne confond t elle pas algo et prog ? (pas grave)
  2. Ben là je n’ai pas office sous la main, j’ai donc essayé sur un site de code en ligne, à part le ElseIf (avec un i majuscule) tout a compilé.
    1. Ah c'est bon merci !
      Mais quelle horreur ces algorithmes haha
    2. Alors tu peux marquer le sujet résolu
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#marquer-un-sujet-resolu

      Le code peut gagner en rapidité en évitant les calculs inutiles (si tu mets cette fonction sur 1000 ligne ça peut être un gain de temps sensible)

      Public Function Commission(CA As Double)
      
      'Fonction qui calcule la commission du représentant selon le barême par tranche
      
      If CA < 2500 Then
          Commission = CA * 0.025
      ElseIf CA < 5000 Then
           '2500 * 0.025 c'est une constante, si on mets la valeur de la constante on évite une multiplication
          Commission = 62.5 + (CA - 2500) * 0.05
      Else
          'et là 2 multiplications et une addition
          Commission = 187.5+ (CA - 5000) * 0.07
      End If
      
      End Function
  3. Bonjour,
    Merci nhenri pour la couleur.
    En plus du elseif.
    Tu as écrit que pour un ca inférieur à 2500, la commission est de 2500* 25.
    Donc le vendeur qui a un ca de 100 a la même somme que celui qui a un ca de 2499, et cette somme est 62 500. C’est une belle commission non?
    1. !! Oui en effet, je l'ai changé, mais ça ne résoud pas mon problème de phrase jaune...
  4. Modérateur
    J'ai ajouté la coloration syntaxique et déjà, le "Elself" est suspect, je pense que tu as mis un L à la place d'un i.
    1. Le Eiself apparaît en erreur de syntaxe...