Erreur de syntaxe
Bonjour
est ce que qu'une ame éclairé peut me dire pourquoi ma fonction me donne un résultat erroné c'est à dire 1065637184
resultat = Application.WorksheetFunction.Percentile(Val(1) & "," & Val(UBound(Val)), 0.9)
à savoir que dans val(1) j'ai 11000 , et dans Val(UBound(Val)), j'ai Val(UBound(Val))400000
merci d'avance.
Un jour sans réponse ! ?
Je pense que c'est le moment de joindre un fichier montrant ton problème, l'avancement de ton travail, etc.
Salut.
Bonjour,
yvouille n'a sans doute pas tort, de plus dans une ligne de code on ne voit pas grand chose... cependant ce
Val(UBound(Val) me chipotte...
C'est toujours une très mauvaise idée d'utiliser comme nom de variable un nom réservé ou un nom de fonction existant ... Pour peu que tes déclarations soient un peu laxistes... Par le biais des auto conversions internes, Dieu seul sait ce que VBA peut tirer de cette salade !
De plus mon VBA (2003) me recrache le "percentile" à la figure. Il n'en veut pas en temps que WorksheetFunction ni à aucune autre sauce d'ailleurs...
A+
Bonjour
Galopin et Yvouille
désolé voici le code
Dim ValMax(1 To 10) As Long
Worksheets(feuille).Range("AA" & deb & ":AA" & fin).Select
For i = LBound(ValMax) To UBound(ValMax)
ValMax(i) = Application.WorksheetFunction.Large(selection, i)
If Worksheets("feuille").Range("C" & i + 2).Value = "M" Then
Worksheets("50").Range("C" & i + 1 + col).Value = 1
Else
Worksheets("50").Range("B" & i + 1 + col).Value = 1
End If
'Worksheets("50").Activate
Worksheets("50").Range("D" & i + 1 +col).Value = ValMax(i)
Next i
'trie croissant pour la Décile
For j = 1 To UBound(ValMax)
x = j
For k = x + 1 To UBound(ValMax)
If ValMax(k) <= ValMax(x) Then x = k
Next k
If j <> x Then
ValTemp = ValMax(x): ValMax(x) = ValMax(j): ValMax(j) = ValTemp
End If
Next j
'contrôle le résultat du tri dans la fenêtre d'execution
For z = 1 To UBound(ValMax)
'Debug.Print ValMax(z)
'MsgBox ValMax(z)
Next z
'ActiveCell.FormulaR1C1 = "=Percentile(" & ValMax(0) & ":" & ValMax(19) & ", 5%)"
'd9 = "=Percentile(" & ValMax(1) & ":" & ValMax(19) & ", 5%)"
'd9 = Application.WorksheetFunction.Percentile(ValMax(1) & "," & ValMax(UBound(ValMax)), 0.9)
d9 = 0.89 * (ValMax(UBound(ValMax)) - ValMax(1))
'"AA" & deb & ":AA" & fin
'd9 = WorksheetFunction.Percentile("AA" & deb & ":AA" & fin, 0.9)==>récupération du des données directement à la source non trié on a un message d'erreur
'd9 = Application.WorksheetFunction.Quartile("AA" & deb & ":AA" & fin, 3)==>pareil avec le quartile
MsgBox d9
End Sub
si ce n'est pas possible en passant par un tbl trié , ou par la source direct peut on avoir une équivalence ? pour que cela fonctionne merci