If MaValeurStr <> MaValeur Then MsgBox "String Différent de Double" End If
If CStr(Int(MaValeur)) <> Valeur Then MsgBox "Chiffre Non Entier" End If
End Sub
"Modeste" a écrit dans le message de news:
Bonsour® Emcy avec ferveur ;o))) vous nous disiez :
quel est la meilleur methode (en vba) pour determiner si un nombre est un entier ? msgbox [A1]=INT([A1])
;o)))
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Francois
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If
End Sub
Testé sous XL2000, pas de problème
-- François L
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche
pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela
Sub DetectionEntier()
Dim MaValeur As Double
MaValeur = 1.23456789012346E+29
If Int(MaValeur) <> MaValeur Then
MsgBox "Chiffre Non Entier"
Else
MsgBox "Chiffre Entier"
End If
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If
End Sub
Testé sous XL2000, pas de problème
-- François L
Emcy
ça marche si tu utilise les puissances mais s'il y a trop de chiffres significatifs, il y a des problémes : tu as essayé mon exemple ? j'ai testé une autre methode mais je ne la trouve pas très "propre" => je mets mon chiffre dans une variable de type string puis je fais un split avec comme delimiteur le "." : si ça me renvoie un tableau à une dimension, alors c'est un entier....
"Francois" a écrit dans le message de news:
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If
End Sub
Testé sous XL2000, pas de problème
-- François L
ça marche si tu utilise les puissances mais s'il y a trop de chiffres
significatifs, il y a des problémes : tu as essayé mon exemple ?
j'ai testé une autre methode mais je ne la trouve pas très "propre"
=> je mets mon chiffre dans une variable de type string puis je fais un
split avec comme delimiteur le "." : si ça me renvoie un tableau à une
dimension, alors c'est un entier....
"Francois" <francois@noadress.fr.invalid> a écrit dans le message de news:
e3i4uj7DGHA.2380@TK2MSFTNGP12.phx.gbl...
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne
marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela
Sub DetectionEntier()
Dim MaValeur As Double
MaValeur = 1.23456789012346E+29
If Int(MaValeur) <> MaValeur Then
MsgBox "Chiffre Non Entier"
Else
MsgBox "Chiffre Entier"
End If
ça marche si tu utilise les puissances mais s'il y a trop de chiffres significatifs, il y a des problémes : tu as essayé mon exemple ? j'ai testé une autre methode mais je ne la trouve pas très "propre" => je mets mon chiffre dans une variable de type string puis je fais un split avec comme delimiteur le "." : si ça me renvoie un tableau à une dimension, alors c'est un entier....
"Francois" a écrit dans le message de news:
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If
End Sub
Testé sous XL2000, pas de problème
-- François L
Michel NOLF
As-tu essayé le type Currency. Cela permet plus de chiffre que le type Long Integer. Au dela ???? !!!!!! Amicalement Michel
"Emcy" a écrit dans le message de news: %
ça marche si tu utilise les puissances mais s'il y a trop de chiffres significatifs, il y a des problémes : tu as essayé mon exemple ? j'ai testé une autre methode mais je ne la trouve pas très "propre" => je mets mon chiffre dans une variable de type string puis je fais un split avec comme delimiteur le "." : si ça me renvoie un tableau à une dimension, alors c'est un entier....
"Francois" a écrit dans le message de news:
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If
End Sub
Testé sous XL2000, pas de problème
-- François L
As-tu essayé le type Currency. Cela permet plus de chiffre que le type Long
Integer. Au dela ???? !!!!!!
Amicalement Michel
"Emcy" <toto@bla.com> a écrit dans le message de news:
%23IqDx4DEGHA.2648@TK2MSFTNGP11.phx.gbl...
ça marche si tu utilise les puissances mais s'il y a trop de chiffres
significatifs, il y a des problémes : tu as essayé mon exemple ?
j'ai testé une autre methode mais je ne la trouve pas très "propre"
=> je mets mon chiffre dans une variable de type string puis je fais un
split avec comme delimiteur le "." : si ça me renvoie un tableau à une
dimension, alors c'est un entier....
"Francois" <francois@noadress.fr.invalid> a écrit dans le message de news:
e3i4uj7DGHA.2380@TK2MSFTNGP12.phx.gbl...
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne
marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela
Sub DetectionEntier()
Dim MaValeur As Double
MaValeur = 1.23456789012346E+29
If Int(MaValeur) <> MaValeur Then
MsgBox "Chiffre Non Entier"
Else
MsgBox "Chiffre Entier"
End If
As-tu essayé le type Currency. Cela permet plus de chiffre que le type Long Integer. Au dela ???? !!!!!! Amicalement Michel
"Emcy" a écrit dans le message de news: %
ça marche si tu utilise les puissances mais s'il y a trop de chiffres significatifs, il y a des problémes : tu as essayé mon exemple ? j'ai testé une autre methode mais je ne la trouve pas très "propre" => je mets mon chiffre dans une variable de type string puis je fais un split avec comme delimiteur le "." : si ça me renvoie un tableau à une dimension, alors c'est un entier....
"Francois" a écrit dans le message de news:
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If
End Sub
Testé sous XL2000, pas de problème
-- François L
Emcy
bonjour, le probleme ne vient pas du type double, ça vient de la fonction INT qui tronque le resultat
"Michel NOLF" a écrit dans le message de news: e%
As-tu essayé le type Currency. Cela permet plus de chiffre que le type Long Integer. Au dela ???? !!!!!! Amicalement Michel
"Emcy" a écrit dans le message de news: %
ça marche si tu utilise les puissances mais s'il y a trop de chiffres significatifs, il y a des problémes : tu as essayé mon exemple ? j'ai testé une autre methode mais je ne la trouve pas très "propre" => je mets mon chiffre dans une variable de type string puis je fais un split avec comme delimiteur le "." : si ça me renvoie un tableau à une dimension, alors c'est un entier....
"Francois" a écrit dans le message de news:
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If
End Sub
Testé sous XL2000, pas de problème
-- François L
bonjour,
le probleme ne vient pas du type double, ça vient de la fonction INT qui
tronque le resultat
"Michel NOLF" <michel.nolf.sansspam@tiscali.fr> a écrit dans le message de
news: e%234mAHKEGHA.740@TK2MSFTNGP12.phx.gbl...
As-tu essayé le type Currency. Cela permet plus de chiffre que le type
Long Integer. Au dela ???? !!!!!!
Amicalement Michel
"Emcy" <toto@bla.com> a écrit dans le message de news:
%23IqDx4DEGHA.2648@TK2MSFTNGP11.phx.gbl...
ça marche si tu utilise les puissances mais s'il y a trop de chiffres
significatifs, il y a des problémes : tu as essayé mon exemple ?
j'ai testé une autre methode mais je ne la trouve pas très "propre"
=> je mets mon chiffre dans une variable de type string puis je fais un
split avec comme delimiteur le "." : si ça me renvoie un tableau à une
dimension, alors c'est un entier....
"Francois" <francois@noadress.fr.invalid> a écrit dans le message de
news: e3i4uj7DGHA.2380@TK2MSFTNGP12.phx.gbl...
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne
marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela
Sub DetectionEntier()
Dim MaValeur As Double
MaValeur = 1.23456789012346E+29
If Int(MaValeur) <> MaValeur Then
MsgBox "Chiffre Non Entier"
Else
MsgBox "Chiffre Entier"
End If
bonjour, le probleme ne vient pas du type double, ça vient de la fonction INT qui tronque le resultat
"Michel NOLF" a écrit dans le message de news: e%
As-tu essayé le type Currency. Cela permet plus de chiffre que le type Long Integer. Au dela ???? !!!!!! Amicalement Michel
"Emcy" a écrit dans le message de news: %
ça marche si tu utilise les puissances mais s'il y a trop de chiffres significatifs, il y a des problémes : tu as essayé mon exemple ? j'ai testé une autre methode mais je ne la trouve pas très "propre" => je mets mon chiffre dans une variable de type string puis je fais un split avec comme delimiteur le "." : si ça me renvoie un tableau à une dimension, alors c'est un entier....
"Francois" a écrit dans le message de news:
merci mais ça ne marche pas totalement : pour de gros chiffre, ça ne marche pas => que faire ?
Bonjour,
Si, si ça marche !
Essaie cela Sub DetectionEntier() Dim MaValeur As Double MaValeur = 1.23456789012346E+29 If Int(MaValeur) <> MaValeur Then MsgBox "Chiffre Non Entier" Else MsgBox "Chiffre Entier" End If