Tester un entier vide (isEmpty, isNull)?

Tester un entier vide (isEmpty, isNull)? - VB/VBA/VBS - Programmation

Marsh Posté le 30-04-2010 à 11:19:26    

Salutatous,
 
Je bug sur un truc qui me parait pourtant pas bien compliqué: Tester si une cellule est vide sachant que ma variable est un entier!
 
Exemple:
Je récupère dans une variable, les notes contenues dans A2:A11, si la cellule est vide, j'affiche une msgbox, mais aucun de mes tests ne fonctionnent
 

Code :
  1. Sub macro1()
  2. Dim note As Integer
  3. For i = 1 To 10
  4. note = Range("A1" ).Offset(i).Value
  5.        
  6. If note = "" Then MsgBox ("cellule vide" )
  7.            
  8. If IsEmpty(note) Then MsgBox ("cellule vide" )
  9.        
  10. If IsNull(note) Then MsgBox ("cellule vide" )
  11. next i
  12. End Sub


 
Si vous avez un indice, merci d'avance!

Reply

Marsh Posté le 30-04-2010 à 11:19:26   

Reply

Marsh Posté le 30-04-2010 à 12:36:37    

Tu ne peux pas mettre dans un entier une chaine...
C'est le ba-ba ca...
 
S'il n'y a rien dans une cellule, Excel renvoit : ""
Rien, mais dans une chaine (string)
 
Et tu ne peux pas mettre une chaine dans une vraible entier...
 
Il faut donc tester au prealable si la chaine n'est pas egale a ""
Convertir ta chaine en entier (CInt())
Et l'affecter a ta variable...
 

Code :
  1. if Range("A1" ).Offset(i).Value <>"" then


 
Toi tu affecters d'abord une valeur chaine a note qui est de type entier, pour tester ensuite si ta variable note de type entier contient une chaine...  :pt1cable:


Message édité par SuppotDeSaTante le 30-04-2010 à 12:40:29

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 30-04-2010 à 13:51:37    

Yeap, merci de ta réponse.
 
Effectivement le problème est qu'Excel renvoie "" et pas Null ou Vide.
 
J'ai pensé à une solution plus simple du coup (que convertir la chaine), c'est de faire le test directement sur la cellule et non la variable.
 
Par exemple:
if Isempty(Range("A1" ).Offset(i)) Then

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed