Bonjour
J'utilise des fonctions VBA qui marchent très bien dans les calculs. Ce que je ne comprends pas, c'est le fait que la fonction filtre sous Excel 365 donne le résultat #Valeur! quand j'utilise les fonctions VBA comme critère. Par exemple +FILTRE(Mots!E11:E500; isPrime(Mots!E11:E500)), isPrime() est une fonction VBA qui vérifie si un nombre est premier.
Merci pour votre aide.
PS. Le code de la fonction en question est:
Public Function isPrime(Number As Long) As Boolean
If (Number = 1) Then
isPrime = False
Exit Function
End If
If (Number = 2) Or (Number = 3) Then
isPrime = True
Exit Function
End If
If (Number < 1) Then
isPrime = False
End If
Dim i As Long
For i = 2 To CLng(Sqr(Number)) Step 1
If Number Mod i = 0 Then
isPrime = False
Exit Function
End If
Next i
isPrime = True
End Function
J'utilise des fonctions VBA qui marchent très bien dans les calculs. Ce que je ne comprends pas, c'est le fait que la fonction filtre sous Excel 365 donne le résultat #Valeur! quand j'utilise les fonctions VBA comme critère. Par exemple +FILTRE(Mots!E11:E500; isPrime(Mots!E11:E500)), isPrime() est une fonction VBA qui vérifie si un nombre est premier.
Merci pour votre aide.
PS. Le code de la fonction en question est:
Public Function isPrime(Number As Long) As Boolean
If (Number = 1) Then
isPrime = False
Exit Function
End If
If (Number = 2) Or (Number = 3) Then
isPrime = True
Exit Function
End If
If (Number < 1) Then
isPrime = False
End If
Dim i As Long
For i = 2 To CLng(Sqr(Number)) Step 1
If Number Mod i = 0 Then
isPrime = False
Exit Function
End If
Next i
isPrime = True
End Function