Stockage valeur

Résolu
Bonjour le forum !

Je souhaite afficher un UserForm si la moyenne de "FeuilleCalc"!(D2:D50) est inférieure à 3 ou supérieure à 10. Entre 3 et 10, ne rien faire.

J'ai essayé de stocker ma valeur moyenne dans une variable nommée "M"

Sub Test()  'Vérifie moyenne
With Sheets("FeuilleCalc")
Dim M As Long
M = Application.Average(Range(Cells(2, 4), Cells(50, 4)))
If .M.Value < 3 Then UF1.Show '***
If .M.Value > 10 Then UF1.Show
End With
End Sub


Au niveau de *** j'obtiens une erreur 438, sans comprendre pourquoi.
Un fichier exemple : https://www.cjoint.com/c/FCtiwBHtqXk

Puis-je vous demander de l'aide ?

Merci par avance !

4 réponses

  1. Exact, sans le Value la fonction fait ce pour quoi elle a été conçue.
    Erreur de syntaxe, donc.

    Merci pour ton aide et bon week-end !
    0
    1. Eric, toujours là ? :)
      0
      1. Contributeur
        Non, pas toujours là, j'ai une vie à coté.
        Le . m'avait sauté au yeux mais le .value n'a rien à faire sur une variable non plus.
        eric
        0
    2. Bonjour Eric

      Merci de ta réponse

      J'ai remplacé le Long par Single pour tenir compte des virgules et ne plus faire de moyenne.
      J'ai supprimé le point avant M.
      J'obtiens à présent une erreur "Qualificateur incorrect" sur la définition du M=

      Sub Test()  'Vérifie moyenne
      With Sheets("FeuilleCalc")
      Dim M As Single
      M = Application.Average(Range(Cells(2, 4), Cells(50, 4)))
      If M.Value < 3 Then UF1.Show '***
      If M.Value > 10 Then UF1.Show
      End With
      End Sub


      Merci à plus !
      0
      1. Contributeur
        Bonjour,

        pourquoi .M.Value et non M.Value ?
        De plus avec Dim M As Long tu vas arrondir ta moyenne à l'entier, tu afficheras ton UF à tort dans certains cas.
        eric

        En essayant continuellement, on finit par réussir. 
        Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
        En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
        0