[COLOR="DarkSlateGray"][B]Function ComBinLong(N, P)
[COLOR="Green"]'Fonction [U]matricielle[/U] à appliquer à deux cellules contigües.[/COLOR]
Application.Volatile
Dim i As Long, j As Long, mant As Double, expo As Long
ComBinLong = Array("", "")
On Error GoTo E
N = Int(N)
P = Int(P)
P = WorksheetFunction.Max(P, N - P)
For i = 0 To P - 1
mant = mant + (Log(N - i) - Log(P - i)) / Log(10)
If mant >= 1 Then expo = expo + Int(mant): mant = mant - Int(mant)
Next i
For j = 0 To N - P - 1
mant = mant + (Log(N - i - j) - Log(N - P - j)) / Log(10)
If mant >= 1 Then expo = expo + Int(mant): mant = mant - Int(mant)
Next j
ComBinLong = Array(10 ^ mant, expo)
S: On Error GoTo 0
If Application.Caller.Rows.Count = 2 Then ComBinLong = WorksheetFunction.Transpose(ComBinLong)
Exit Function
E: Resume S
End Function[/B][/COLOR]