Stockage valeur
Résolu
touroul
Messages postés
520
Date d'inscription
Statut
Membre
Dernière intervention
-
touroul Messages postés 520 Date d'inscription Statut Membre Dernière intervention -
touroul Messages postés 520 Date d'inscription Statut Membre Dernière intervention -
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"
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 !
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
-
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 -
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 ! -
Eric, toujours là ? :)
-
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 !