Fonction isnumeric améliorée (empêche les exposants)

Contenu du snippet

Certaines chaines de caractères (comme "00100E86" par exemple") sont considérées comme des numériques (càd que le E est considéré comme le symbole Exposant). Or, dans certains cas, il ne faut pas considérer le "E" comme exposant mais bien comme une lettre, et de ce fait, la chaine de caractère n'est plus numérique, mais bien alphanumérique. La fonction retourne True si la chaine est exclusivement composée de chiffres, tous les autres caractères étant exclus (boucle sur les codes ascii 32 à 254).

Source / Exemple :


Function WSIsNumeric(Value As Variant) As Boolean

    Dim Compteur As Byte
    
    Select Case IsNumeric(Value)
        Case True
            WSIsNumeric = True
            For Compteur = 32 To 254
                Select Case Compteur
                    Case 48 To 57 '0 à 9
                    Case Else
                        Select Case InStr(1, Value, Chr$(Compteur))
                            Case 0
                            Case Else
                                WSIsNumeric = False
                                Exit Function
                        End Select
                End Select
            Next
        Case Else
            WSIsNumeric = False
            Exit Function
    End Select
    
End Function

Conclusion :


La fonction IsNumeric est surtout utilisable dans VBA (Access, Excel...)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.