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. 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
    1. 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. 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. 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