Function Puissance(ByVal Nb1 As Double, ByVal Expo As Long) As Double
' EXPONENTIATION RAPIDE
' Appliqué au calcul d'une puissance entière d'un nb
' Paramètres
Dim Signe As Integer
' Traitement pb de signe
Signe = Sgn(Expo)
Expo = Abs(Expo)
' Cas triviaux
If Expo = 0 Then Puissance = 1: Exit Function
If Expo = 1 Then Puissance = Nb1: Exit Function
' Algo
Puissance = 1
Do
If Expo And 1 Then Puissance = Puissance * Nb1
Expo = Expo \ 2
Nb1 = Nb1 * Nb1
Loop While Expo > 1
Puissance = Puissance * Nb1
' Renvoi 1/puissance si exposant négatif
If Signe < 0 Then Puissance = 1 / Puissance
End Function