Stockage valeur

Résolu/Fermé
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 19 mars 2016 à 09:23
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 - 19 mars 2016 à 11:26
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 !

A voir également:

4 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
Modifié par eriiic le 19/03/2016 à 09:33
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
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
19 mars 2016 à 09:42
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
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
19 mars 2016 à 10:44
Eric, toujours là ? :)
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
19 mars 2016 à 11:00
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
touroul Messages postés 465 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 29 janvier 2024 15
19 mars 2016 à 11:26
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