Voici mon probl=E8me :
Je souhaiterais, en VBA, pouvoir v=E9rifier si le contenu
d'une cellule est vraiment du num=E9rique.
Il me faut distinguer pour cela le VRAI num=E9rique d'un
nombre au format texte (obtenu par exemple apr=E8s=20
extraction d'une chaine num=E9rique d'une phrase=20
quelconque).
le contr=F4le "IsNumeric" de VBA ne permet pas de faire=20
cette diff=E9rence...
Merci d'avance pour la solution (si elle existe !...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Denis Michon
Bonjour Goullinus,
Si j'ai compris ce que tu désires, utilises les fonctions de conversion. Regarde dans l'aide VBA sous la rubrique "conversion".
Essaie ce qui suit :
'----------------------------- Sub TestNumeric()
On Error Resume Next If Range("A2").NumberFormat <> "@" Then a = CDbl(Range("A2")) If Err = 0 Then MsgBox Range("A1").Address(0, 0) & " est numérique." Else MsgBox Range("A1").Address(0, 0) & " est non numérique." End If Else MsgBox Range("A1").Address(0, 0) & " est non numérique." End If
End Sub '-----------------------------
Salutations!
"Goullinus" a écrit dans le message de news:014001c395bd$4076c930$ Voici mon problème : Je souhaiterais, en VBA, pouvoir vérifier si le contenu d'une cellule est vraiment du numérique. Il me faut distinguer pour cela le VRAI numérique d'un nombre au format texte (obtenu par exemple après extraction d'une chaine numérique d'une phrase quelconque).
le contrôle "IsNumeric" de VBA ne permet pas de faire cette différence...
Merci d'avance pour la solution (si elle existe !...)
Goullinus
Bonjour Goullinus,
Si j'ai compris ce que tu désires, utilises les fonctions de conversion. Regarde dans l'aide VBA sous la rubrique
"conversion".
Essaie ce qui suit :
'-----------------------------
Sub TestNumeric()
On Error Resume Next
If Range("A2").NumberFormat <> "@" Then
a = CDbl(Range("A2"))
If Err = 0 Then
MsgBox Range("A1").Address(0, 0) & " est numérique."
Else
MsgBox Range("A1").Address(0, 0) & " est non numérique."
End If
Else
MsgBox Range("A1").Address(0, 0) & " est non numérique."
End If
End Sub
'-----------------------------
Salutations!
"Goullinus" <goullinus@free.fr> a écrit dans le message de news:014001c395bd$4076c930$a501280a@phx.gbl...
Voici mon problème :
Je souhaiterais, en VBA, pouvoir vérifier si le contenu
d'une cellule est vraiment du numérique.
Il me faut distinguer pour cela le VRAI numérique d'un
nombre au format texte (obtenu par exemple après
extraction d'une chaine numérique d'une phrase
quelconque).
le contrôle "IsNumeric" de VBA ne permet pas de faire
cette différence...
Merci d'avance pour la solution (si elle existe !...)
Si j'ai compris ce que tu désires, utilises les fonctions de conversion. Regarde dans l'aide VBA sous la rubrique "conversion".
Essaie ce qui suit :
'----------------------------- Sub TestNumeric()
On Error Resume Next If Range("A2").NumberFormat <> "@" Then a = CDbl(Range("A2")) If Err = 0 Then MsgBox Range("A1").Address(0, 0) & " est numérique." Else MsgBox Range("A1").Address(0, 0) & " est non numérique." End If Else MsgBox Range("A1").Address(0, 0) & " est non numérique." End If
End Sub '-----------------------------
Salutations!
"Goullinus" a écrit dans le message de news:014001c395bd$4076c930$ Voici mon problème : Je souhaiterais, en VBA, pouvoir vérifier si le contenu d'une cellule est vraiment du numérique. Il me faut distinguer pour cela le VRAI numérique d'un nombre au format texte (obtenu par exemple après extraction d'une chaine numérique d'une phrase quelconque).
le contrôle "IsNumeric" de VBA ne permet pas de faire cette différence...
Merci d'avance pour la solution (si elle existe !...)
Goullinus
AV
Autre.... La fonction de feuille de calcul ESTNUM (isnumber) fait le distinguo que tu souhaites :
Sub zz_TestNum() MsgBox Evaluate("isnumber(" & ActiveCell.Address & ")") End Sub
AV
Autre....
La fonction de feuille de calcul ESTNUM (isnumber) fait le distinguo que tu
souhaites :
Sub zz_TestNum()
MsgBox Evaluate("isnumber(" & ActiveCell.Address & ")")
End Sub