Bonjour le forum
Je m'excuse de vous déranger, je bloque encore après 2 jours de recherche infructueuses (que voulez vous quand on est noob on est noob).
Je cherche à calculer un écart-type (même si les stasticiens verront immédiatement que la taille de l'échantillon ne me permet pas de faire quelque chose de rigoureux (les objets étudiés sont tres tres cher et donc rare)), les valeurs sont dans un autre classeur sur les feuilles de ce classseur.
Cependant, ça serait trop simple sinon , les feuilles ne contiennent pas nécessairement une valeur. Je suis donc obligée de passer par Index et Match.
J'ai essayé plusieurs formules :
Celle-ci présente dans ma feuille:
"Function ecartype6B(c2 As Range) As Double
Dim t As String, w As Worksheet, s As Double, n As Long
Dim u As Variant
Dim e As Double
Dim i As Long
'Application.Volatile
t = "*" & Trim(c2) & "*"
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
s = s + Application.SumIf(w.[E:E], t, w.[O:O])
n = n + Application.CountIf(w.[E:E], t)
Next
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
Set u = WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("exempledonnees.xlsx").w.[E:E], 0))
If Not u Is Nothing Then
e = ((u - (s / n)) ^ 2) + e
End If
Next
ecarttype6B = Sqr(e)
End Function"
J'ai aussi essayé avec (à la barbare):
"Set x = Application.WorksheetFunction.StDev.s(WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("6B.xlsx").w.[E:E], 0)))"
Ou plus bizare (c'est la variance qui est codée en réalité) :
"Set x = WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("6B.xlsx").w.[E:E], 0))
If MoyenneRecherche6B > 0 Then (Moyenne 6B c'est le S/N du code précedent)
For Each x In Workbooks("6B.xlsx").Worksheets
If x = True Then
e = Application.Sum((x - MoyenneRecherche6B) ^ 2)
ecartype6B = x
End If
Next End If"
Pourriez vous me débloquer s'il vous plait ? Merci par avance
Je m'excuse de vous déranger, je bloque encore après 2 jours de recherche infructueuses (que voulez vous quand on est noob on est noob).
Je cherche à calculer un écart-type (même si les stasticiens verront immédiatement que la taille de l'échantillon ne me permet pas de faire quelque chose de rigoureux (les objets étudiés sont tres tres cher et donc rare)), les valeurs sont dans un autre classeur sur les feuilles de ce classseur.
Cependant, ça serait trop simple sinon , les feuilles ne contiennent pas nécessairement une valeur. Je suis donc obligée de passer par Index et Match.
J'ai essayé plusieurs formules :
Celle-ci présente dans ma feuille:
"Function ecartype6B(c2 As Range) As Double
Dim t As String, w As Worksheet, s As Double, n As Long
Dim u As Variant
Dim e As Double
Dim i As Long
'Application.Volatile
t = "*" & Trim(c2) & "*"
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
s = s + Application.SumIf(w.[E:E], t, w.[O:O])
n = n + Application.CountIf(w.[E:E], t)
Next
For Each w In Workbooks("exempledonnees.xlsx").Worksheets
Set u = WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("exempledonnees.xlsx").w.[E:E], 0))
If Not u Is Nothing Then
e = ((u - (s / n)) ^ 2) + e
End If
Next
ecarttype6B = Sqr(e)
End Function"
J'ai aussi essayé avec (à la barbare):
"Set x = Application.WorksheetFunction.StDev.s(WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("6B.xlsx").w.[E:E], 0)))"
Ou plus bizare (c'est la variance qui est codée en réalité) :
"Set x = WorksheetFunction.Index(Rw.[O:O], WorksheetFunction.Match(c2, Workbooks("6B.xlsx").w.[E:E], 0))
If MoyenneRecherche6B > 0 Then (Moyenne 6B c'est le S/N du code précedent)
For Each x In Workbooks("6B.xlsx").Worksheets
If x = True Then
e = Application.Sum((x - MoyenneRecherche6B) ^ 2)
ecartype6B = x
End If
Next End If"
Pourriez vous me débloquer s'il vous plait ? Merci par avance