vide et 0

Claudevba

XLDnaute Nouveau
Ma question est la suivante, comment faire pour différencier sur une cellule de Excel la valeur 0, du vide. Je m'explique:

Lorsqu'on exécute le code suivant:
Sub Ouais()
With ThisWorkbook.Worksheets("Feuil1")
If .Cells(1, 7) = 0 Then
Debug.Print "je suis égal à zero"
End If
End With
End Sub

le programme affichera "je suis égal à 0", dans le cas où la cellule (1, 7) est égal à zero, ou dans le cas où elle est vide

Si on exécute ceci:


Sub Yep()
With ThisWorkbook.Worksheets("Feuil1")
If .Cells(1, 2) = Empty Then
Debug.Print "je suis vide"
End If
End With
End Sub

Il affichera "je suis vide aussi dans les 2 cas.

Comment donc faire pour que les macros puissent dissocier les 2 cas.

Merci
 

tbft

XLDnaute Accro
Re : vide et 0

Bonjour

pour détecter une cellule vide
VB:
Sub Yep()
With ThisWorkbook.Worksheets("Feuil1")
  If IsEpmty(.Cells(1, 2).value) Then Debug.Print "je suis vide"
End With
End Sub

pour une valeur à 0
VB:
Sub Yep()
With ThisWorkbook.Worksheets("Feuil1")
  If not(IsEpmty(.Cells(1, 2).value)) and (IsEpmty(.Cells(1, 2).value)=0)Then Debug.Print "je suis vide"
End With
End Sub

@Pierrot t'avais pas vue encore trop lent à la frappe ou au test....
 
Dernière édition:

gnol

XLDnaute Nouveau
Re : vide et 0

si cela peut vous servir,

en voulant faire des moyennes pondérées à partir de listes de valeurs affectées d'un meme coefficient (ligne 4) , je différencie le zéro de la case vide par un test ">-1" pour une case non vide
exemple:
=SOMMEPROD(F5:N5;$F$4:$N$4)/SOMME.SI(F5:N5;">-1";$F$4:$N$4) pour la moyenne des valeurs en ligne 5.
 

Discussions similaires

Statistiques des forums

Discussions
312 595
Messages
2 090 094
Membres
104 374
dernier inscrit
cheick.coulibaly@dcsmali.