Aide pour formule personnalisée sous Excel
Résolu
Sylvain_B
-
Sylvain_B Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Sylvain_B Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je reçois une erreur "#VALEUR!" pour le code suivant :
"
Public Function SEM(PlageDeCellules As Range) As Double
Dim ecart, racine As Double
Dim valeur As Integer
ecart = WorksheetFunction.StDev(PlageDeCellules)
valeur = WorksheetFunction.Count(PlageDeCellules)
racine = WorksheetFunction.SqrtPi(ecart)
SEM = ecart / racine
End Function
"
Quelqu'un a-t-il une idée pour me venir en aide ?
Merci par avance
Je reçois une erreur "#VALEUR!" pour le code suivant :
"
Public Function SEM(PlageDeCellules As Range) As Double
Dim ecart, racine As Double
Dim valeur As Integer
ecart = WorksheetFunction.StDev(PlageDeCellules)
valeur = WorksheetFunction.Count(PlageDeCellules)
racine = WorksheetFunction.SqrtPi(ecart)
SEM = ecart / racine
End Function
"
Quelqu'un a-t-il une idée pour me venir en aide ?
Merci par avance
A voir également:
- Aide pour formule personnalisée sous Excel
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
7 réponses
Bonjour,
sans doute qu'un fichier exemple aidera à réfléchir.
On ne sait pas du tout ce que tu lui passes en paramètre lors de l'utilisation.
cjoint.com et coller ici le lien fourni.
eric
sans doute qu'un fichier exemple aidera à réfléchir.
On ne sait pas du tout ce que tu lui passes en paramètre lors de l'utilisation.
cjoint.com et coller ici le lien fourni.
eric
Bonjour,
J'utilisais déjà cette formule sous Excel 2003 en tapant simplement "=sem(" puis en sélectionnant ma plage de données.
Le calcul se faisait automatiquement.
Là, ma formule est bien reconnue quand je tape "=sem(", j'arrive à sélectionner mes données mais aucun calcul dans la cellule juste "#VALEUR!"
:(
J'utilisais déjà cette formule sous Excel 2003 en tapant simplement "=sem(" puis en sélectionnant ma plage de données.
Le calcul se faisait automatiquement.
Là, ma formule est bien reconnue quand je tape "=sem(", j'arrive à sélectionner mes données mais aucun calcul dans la cellule juste "#VALEUR!"
:(
Bonjour Sylvain, Eriiic,
Je rejoinds Eriiic dans ces propos. Sans fichier exemple il nous est iùmpossible de répondre car on ne sait pas quels types de données sont utilisées dans tes formules. Les erreurs #Valeur sont en effet causées par une erreur de type de donénes (texte au lieu de nombre par exemple...)
Voici ce que dit l'aide Excel :
Corriger une erreur #VALEUR!
Survient lorsqu'un type d'argument (argument : valeurs utilisées par une fonction pour effectuer des opérations ou des calculs. Le type d'argument utilisé par une fonction lui est spécifique. Les arguments courants utilisés dans les fonctions comprennent les valeurs numériques, les valeurs de texte, les références de cellule et les noms.) ou d'opérande (opérande : éléments situés de chaque côté d'un opérateur dans une formule. Dans Microsoft Excel, les opérandes peuvent être des valeurs, des références de cellule, des noms, des étiquettes et des fonctions.) inapproprié est utilisé.
Causes et solutions possibles
- La saisie de texte dans une formule nécessitant une valeur numérique ou une valeur logique, telle que VRAI ou FAUX
Microsoft Excel ne peut pas convertir le texte dans le type de donnée approprié. Vérifiez que la formule ou la fonction est correcte pour l'argument ou l'opérande nécessaire, et que les cellules auxquelles la formule fait référence contiennent des valeurs valides. Par exemple, si la cellule A5 contient un nombre et que la cellule A6 contient le texte « Non disponible », la formule =A5+A6 renvoie l'erreur #VALEUR!.
- L'entrée ou la modification d'une formule matricielle suivie de la frappe de la touche ENTRÉE
Sélectionnez la cellule ou la plage de cellules contenant la formule matricielle (formule matricielle : formule qui effectue plusieurs calculs sur un ou plusieurs ensembles de valeurs et qui renvoie un ou plusieurs résultats. Les formules matricielles sont placées entre accolades { } et sont entrées en appuyant sur Ctrl+Maj+Entrée.), appuyez sur la touche F2 pour modifier la formule, puis appuyez sur CTRL+MAJ+ENTRÉE.
- L'entrée d'une référence de cellule, d'une formule ou d'une fonction en tant que constante matricielle
Vérifiez que la constante (constante : valeur qui n'est pas calculée et, par conséquent, ne change pas. Par exemple, le nombre 210 et le texte « Gains trimestriels » sont des constantes. Une expression, ou une valeur obtenue à partir d'une expression, n'est pas une constante.) matricielle n'est pas une référence de cellule, une formule ou une fonction.
- L'attribution d'une plage à un opérateur ou à une fonction qui exige une seule valeur et non pas une plage
Transformez la plage en valeur unique.Modifiez la plage pour y inclure soit la même ligne soit la même colonne que celle contenant la formule.
- L'utilisation d'une matrice non valide dans l'une des fonctions de feuille de calcul de matrices
Vérifiez que les dimensions de la matrice (matrice : matrice rectangulaire de valeurs ou plage de cellules associée à d'autres matrices ou plages pour générer plusieurs sommes ou produits. Microsoft Excel dispose de fonctions de matrice prédéfinies permettant de générer des sommes ou des produits.) sont appropriées aux arguments de la matrice.
- L'exécution d'une macro qui entre une fonction renvoyant la valeur #VALEUR!
Je rejoinds Eriiic dans ces propos. Sans fichier exemple il nous est iùmpossible de répondre car on ne sait pas quels types de données sont utilisées dans tes formules. Les erreurs #Valeur sont en effet causées par une erreur de type de donénes (texte au lieu de nombre par exemple...)
Voici ce que dit l'aide Excel :
Corriger une erreur #VALEUR!
Survient lorsqu'un type d'argument (argument : valeurs utilisées par une fonction pour effectuer des opérations ou des calculs. Le type d'argument utilisé par une fonction lui est spécifique. Les arguments courants utilisés dans les fonctions comprennent les valeurs numériques, les valeurs de texte, les références de cellule et les noms.) ou d'opérande (opérande : éléments situés de chaque côté d'un opérateur dans une formule. Dans Microsoft Excel, les opérandes peuvent être des valeurs, des références de cellule, des noms, des étiquettes et des fonctions.) inapproprié est utilisé.
Causes et solutions possibles
- La saisie de texte dans une formule nécessitant une valeur numérique ou une valeur logique, telle que VRAI ou FAUX
Microsoft Excel ne peut pas convertir le texte dans le type de donnée approprié. Vérifiez que la formule ou la fonction est correcte pour l'argument ou l'opérande nécessaire, et que les cellules auxquelles la formule fait référence contiennent des valeurs valides. Par exemple, si la cellule A5 contient un nombre et que la cellule A6 contient le texte « Non disponible », la formule =A5+A6 renvoie l'erreur #VALEUR!.
- L'entrée ou la modification d'une formule matricielle suivie de la frappe de la touche ENTRÉE
Sélectionnez la cellule ou la plage de cellules contenant la formule matricielle (formule matricielle : formule qui effectue plusieurs calculs sur un ou plusieurs ensembles de valeurs et qui renvoie un ou plusieurs résultats. Les formules matricielles sont placées entre accolades { } et sont entrées en appuyant sur Ctrl+Maj+Entrée.), appuyez sur la touche F2 pour modifier la formule, puis appuyez sur CTRL+MAJ+ENTRÉE.
- L'entrée d'une référence de cellule, d'une formule ou d'une fonction en tant que constante matricielle
Vérifiez que la constante (constante : valeur qui n'est pas calculée et, par conséquent, ne change pas. Par exemple, le nombre 210 et le texte « Gains trimestriels » sont des constantes. Une expression, ou une valeur obtenue à partir d'une expression, n'est pas une constante.) matricielle n'est pas une référence de cellule, une formule ou une fonction.
- L'attribution d'une plage à un opérateur ou à une fonction qui exige une seule valeur et non pas une plage
Transformez la plage en valeur unique.Modifiez la plage pour y inclure soit la même ligne soit la même colonne que celle contenant la formule.
- L'utilisation d'une matrice non valide dans l'une des fonctions de feuille de calcul de matrices
Vérifiez que les dimensions de la matrice (matrice : matrice rectangulaire de valeurs ou plage de cellules associée à d'autres matrices ou plages pour générer plusieurs sommes ou produits. Microsoft Excel dispose de fonctions de matrice prédéfinies permettant de générer des sommes ou des produits.) sont appropriées aux arguments de la matrice.
- L'exécution d'une macro qui entre une fonction renvoyant la valeur #VALEUR!
bonjour,
bien que sous 2003, cette fonction personnalisée me donne le même résultat :
"#VALEUR!"
après un tas d'essais sur les déclaration de variables, de changement de format de la plage (sans effet) j'ai supprimé la ligne valeur=... non utilisée et déterminé racine directement en vba . ça fonctionne:
A+
bien que sous 2003, cette fonction personnalisée me donne le même résultat :
"#VALEUR!"
après un tas d'essais sur les déclaration de variables, de changement de format de la plage (sans effet) j'ai supprimé la ligne valeur=... non utilisée et déterminé racine directement en vba . ça fonctionne:
Public Function SEM(PlageDeCellules As Range) As Double Dim ecart, racine As Double ecart = WorksheetFunction.StDev(PlageDeCellules) 'valeur = WorksheetFunction.Count(PlageDeCellules) racine = Sqr(ecart * 4 * Atn(1)) SEM = ecart / racine End Function
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour à tous,
1/ Merci pour vos réponses
2/ Toujours la même erreur
3/ Précision : je suis sous 2010
4/ Voici le lien : http://cjoint.com/data/0Gni74dYzO3.htm
1/ Merci pour vos réponses
2/ Toujours la même erreur
3/ Précision : je suis sous 2010
4/ Voici le lien : http://cjoint.com/data/0Gni74dYzO3.htm
Bonjour,
Je viens d'essayer votre fichier sur mon Excel 2003, la fonction de paf fonctionne. Elle donne le résultat (approché) : 0,641043131 au lieu de 0,645497224. Mais on est presque bon non?
Par contre, j'ai l'impression que c'est la liaison vers un autre classeur ('C:\Documents and Settings\SBRI\Application Data\Microsoft\AddIns\PERSONAL.xlam'!) qui bloque...
La fonction personnalisée de Paf a fonctionné chez moi car je l'ai placée dans un module du classeur... Essaye déjà ça pour voir :
- depuis ta feuille de calcul : ALT+F11
- Insertion/Module
- copier coller le code de Paf.
Et tester!
Je viens d'essayer votre fichier sur mon Excel 2003, la fonction de paf fonctionne. Elle donne le résultat (approché) : 0,641043131 au lieu de 0,645497224. Mais on est presque bon non?
Par contre, j'ai l'impression que c'est la liaison vers un autre classeur ('C:\Documents and Settings\SBRI\Application Data\Microsoft\AddIns\PERSONAL.xlam'!) qui bloque...
La fonction personnalisée de Paf a fonctionné chez moi car je l'ai placée dans un module du classeur... Essaye déjà ça pour voir :
- depuis ta feuille de calcul : ALT+F11
- Insertion/Module
- copier coller le code de Paf.
Et tester!
:)
Merci !
C'est ok maintenant.
En fait c'était "personal.xlam" qui merdait.
J'ai donc corrigé et mis le code de Paf "à jour" par rapport à la formule de calcul, ce qui donne au final :
"
Public Function SEM(PlageDeCellules As Range) As Double
Dim ecart, racine As Double
ecart = WorksheetFunction.StDev(PlageDeCellules)
valeur = WorksheetFunction.Count(PlageDeCellules)
racine = Sqr(valeur)
SEM = ecart / racine
End Function
"
J'ai besoin du nombre de valeur dans la plage de données pour calculer mon paramètre "racine"
Merci !
C'est ok maintenant.
En fait c'était "personal.xlam" qui merdait.
J'ai donc corrigé et mis le code de Paf "à jour" par rapport à la formule de calcul, ce qui donne au final :
"
Public Function SEM(PlageDeCellules As Range) As Double
Dim ecart, racine As Double
ecart = WorksheetFunction.StDev(PlageDeCellules)
valeur = WorksheetFunction.Count(PlageDeCellules)
racine = Sqr(valeur)
SEM = ecart / racine
End Function
"
J'ai besoin du nombre de valeur dans la plage de données pour calculer mon paramètre "racine"