Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Excel pour les null ne pas afficher les zeros (bwz blank when zero)

0/5 (12 avis)

Snippet vu 2 760 fois - Téléchargée 9 fois

Contenu du snippet

Memento sur les cellules a zéro.

Traitement des Cellules quand une formule de calcul conditionnée ou non retourne la valeur zéro.
Soit la formule retourne un zéro que l'on ne veux pas voir affiché
Soit la formule retourne une chaine vide qui perturbe les calculs.

Ci dessous différentes solutions aux problemes rencontrés.

Source / Exemple :


'
' ----------------------------------------------------------------------
' BWZ : Blank When Zéro  EXCEL POUR LES NULL  (Zéro est arrivé)
' ----------------------------------------------------------------------
' La fonction SI retourne une valeur de type numérique ou Alpha qui peut être gênante
'
' Syntaxe N°1 Exemple de condition qui retourne le nombre zéro
'    retourne la valeur numérique zéro avec les syntaxes suivantes (dans le cas ou A1 est égal a zéro ou estVide) 
'       A1 = 0
'       B1 = SI(A1<>0;"Pas nul";)
'       B1 = SI(A1<>0;"Pas nul";0)
'       B1 = SI(A1=0;;"Pas nul")
'       B1 = SI(A1=0;0;"Pas nul")
'    Avec cette syntaxe
'       C1 = B1 + 22      --> 22 sans problème
'       Mais la valeur 0 retournée en B1 n'est pas forcément souhaitée à l'affichage.
'       Pour ne pas afficher les zéros dans certaines cellules d'une feuille : 
'          utiliser un mask d'édition personnalisé avec la condition d'affichage [<>0] 
'          Format Cell Personnalisé :  [<>0]# ##0.00;""
'       Ou bien si aucune valeur à zéro n'est à afficher dans la feuille ou dans le classeur
'          Options Excel / Options avancées / Décocher la case "Afficher un zéro dans les cellules qui ont une valeur nulle"
'
' Syntaxe N°2 Exemple de condition qui retourne une chaine vide ""
'    retourne une chaine alpha vide avec les syntaxes suivantes (dans le cas ou A1 est égal a zéro ou estVide) 
'       A1 = 0
'       B1 = SI(A1<>0;"Pas nul";"")
'       B1 = SI(A1=0;"";"Pas nul")
'       Avec cette syntaxe
'          La valeur "" retournée est gênante quand la cellule entre dans une formule arithmétique 
'          C1 = B1 + 22         --> #VALEUR car la cellule B1 contient de l'alpha
'          Pour contourner le problème il faut faire
'          C1 = SOMME(B1) + 22  --> 22  
'          Il n'y a pas de 0 affiché puisque la cellule est de type texte et contient ""
' 
' NOTA 1 Le Mask d'affichage ne change ni le type ni la valeur des cellules.
' NOTA 2 Quelque soit la syntaxe utilisée, la cellule B1 n'est plus vide car elle contient soit 0 soit une chaine vide
'       et la fonction ESTVIDE(B1) retourne toujours FAUX car la cellule n'a plus le type vbEmpty
' NOTA 3 si on exporte le fichier au format .TXT ou .CSV les données sont exportées formatées comme elles sont affichées.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.