Tester si une cellule est vide ou entiere

V

viniboy

Guest
Bonjour à tous et à toutes,

Je cherche à tester que sur la range(A1:A6) par exemple, chaque cellule est soit vide soit contient un nombre entier.

Si quelqu'un peut m'aider, ce me serait tres utile, j'ai beaucoup de mal. :)

Cordialement,
Vincent
 
J

JONATHAN

Guest
hello,

je en suis pas un expert mais je vais essayé de répondre.

voici le code en VBA que j'ai trouvé:

Sub f()
Dim Cellule As Range
Set Cellule = Range('a1')

For Each X In Range('A1:A6')
If X = '' Then 'si la cellule est vide
'ce qu'il faut faire si le test est vrai
Else
'ce qu'il faut faire si le test est faux
End If
Next X


surement a amélioré ;)
 
V

viniboy

Guest
Bonjour Jonathan,

Merci beaucoup c'est ce que j'ai crée moi aussi à peu pres.
Mais je cherche aussi à tester si la cellule est un nombre entier.: Une cellule de la plage doit etre soit vide, soit contenir un nombre entier, rien d'autre (c'est pour tester la conformité des données avant de commencer la procédure principale).

Merci à toutes et à tous,
Cordialement,
Vincent
 
V

Viniboy

Guest
Bonjour André,

Tres jolie formule qui, dans un premier temps m'a bluffée. Mais il y a un bug: si somme A1:A6 est un entier, cela ne signifie pas forcément que toutes les valeurs de la plage sont entiere: par exemple 2,25 2,25 2,25 3,25 la somme vaut 11 et les nombres ne sont pas entiers.

En fait je cherche une formule dans VBA.

Merci beaucoup à toi tout de meme,

Vincent
 

andré

XLDnaute Barbatruc
Resalut,

Exact, mais il faut qu'il y ait plusieurs nombres avec décimales et que la somme soit un nombre entier.
Probabilité asez rare.

La formule matricielle : ={SOMME(ENT(A1:A6))=SOMME(A1:A6)}
à valider par Ctrl+Maj+Enter, serait alors plus appropriée.

Ândré.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Cher Compatriote et Ami Ândré, Viniboy, Jonathan, le Forum

En VBA, une boucle qui traquerait les nombre non-entier relatifs (Integer) :

Sub CheckInteger()
Dim Cell As Range
Dim Msg As String

For Each Cell In Range('A1:A50')
   
If IsNumeric(Cell) Then
       
If Cell - Int(Cell) <> 0 Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cell.Interior.ColorIndex = 3
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Msg = Msg & Cell.Address & vbCrLf
&nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
End If
Next
If Msg <> '' Then MsgBox 'Cellule Non-Integer :' & vbCrLf & Msg
End Sub

Maintenant reste à savoir ce que tu appelles entier aussi...
(Entier, Entier Pair, Entier Impair, Entier Premier ?)

Bonne Journée
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 928
Messages
2 093 697
Membres
105 787
dernier inscrit
BABOU79