IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[E-07] Fonction NZ pour excel


Sujet :

Contribuez

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Points : 91
    Points
    91
    Par défaut [E-07] Fonction NZ pour excel
    Quand j'utilisais Visual Basic pour ACCES, il y avait une fonction très utile : la fonction NZ.
    Cette fonction permettait de substituer toutes les valeurs d'erreur par une valeur valide.

    Le code ci-dessous à introduire dans une macro ou un module fait la même chose et reste utilisable comme fonction de feuille de calcul ... j'espère...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Public Function NZ(ByVal ValeurTestée As Variant, Optional ByVal ValeurRenvoyée As Variant = 0) As Variant
            'Toutes les erreurs renvoient "ValeurRenvoyée"
            On Error GoTo NZERR
            'Teste "ValeurTestée" et détermine si elle une ERREUR, NULL, VIDE
            'Si OUI renvoie ValeurRenvoyée
            If IsError(ValeurTestée) Then GoTo NZERR
            If IsNull(ValeurTestée) Then GoTo NZERR
            If IsEmpty(ValeurTestée) Then GoTo NZERR
            If Len(ValeurTestée) = 0 Then GoTo NZERR
            'Si NON renvoit "ValeurTestée"
            NZ = ValeurTestée
            GoTo NZExit
    NZERR:
            NZ = ValeurRenvoyée
    NZExit:
    End Function
    Fonction NZ
    Nz(ValeurTestée ; ValeurRenvoyée)

    ValeurTestée (obligatoire)= Toute valeur ou référence de cellule
    ValeurRenvoyée (facultatif)= Toute valeur ou référence de cellule

    Par défaut NZ renvoie valeur 0 zéro

    Par exemple :
    =NZ(8/0;C3+C4) ' 8/0 est une valeur d'erreur #Div/0!, NZ renvoie le résultat de la cellule C3+C4
    =NZ(A1;"TEXTE") 'Si A1 contient une valeur d'erreur, NZ renvoie "TEXTE"
    =NZ(A1;10) 'Si A1 contient une valeur d'erreur, NZ renvoie 10
    =NZ(SOMME(A1: D5);-1) 'Si SOMME(A1: D5) contient une valeur d'erreur, NZ renvoie -1
    =NZ(A1) ' renvoi 0 zéro par défaut si A1 contient une valeur d'erreur

    Aussi :
    NZ(ValeurCherchée;ValeurRenvoyée) est équivalent aux fonctions ESTERR ESTVIDE ESTNA

    Parconséquent le résultat devrait être le même pour ces fonctions:
    =SI(ESTNA(A1);"AUTRE VALEUR";A1)
    =SI(ESTVIDE(A1);"AUTRE VALEUR";A1)
    =SI(ESTERR(A1);"AUTRE VALEUR";A1)
    =SI(A1="";"AUTRE VALEUR";A1)

    que pour :
    =NZ(A1;"AUTRE VALEUR")

    NZ reconnait #DIV/0!
    NZ reconnait #N/A
    NZ reconnait #NOM?
    NZ reconnait #VALEUR!
    NZ reconnait =""
    NZ reconnait cellule vide
    Enjoy this CODE for FREE
      0  1

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir


    Sous Excel 2007 il existe la fonction : SIERREUR
    Elle renvoie une donnée spécifiée si l'argument testé génère une erreur. Sinon, elle renvoie le résultat de l'argument.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SIERREUR(Argument_Testé ; valeur_si_erreur)

    bonne soirée
    michel
      0  0

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 103
    Points : 91
    Points
    91
    Par défaut
    Mince ... j'avais pas vu ...
    Je viens de vérifier et ô merveille, ça marche aussi bien si ce n'est mieux que NZ by myself
    Et dire que que je me galère pour rien parfois...

    Faut que je vienne plus souvent

    _____________________________
    Il y a pire que les imprévus ; Ce sont les certitudes...
    _____________________________

    Cela étant dit, SIERREUR n'existe pas en visual ? N'est ce pas... y a une chance pour que NZ by myself reste utile ....
    Quoiqu'en réfléchissant deux secondes le code le plus court pour un même résultat étant forcément le meilleur, le code suivant peut remplacer plus avantageusement NZ by myself dans une macro...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.IfError(ValeurTestée,ValeurRenvoyée)
    Donc NZ comme NaZe cette contribution.

    Je ferais mieux la prochaine fois.
      0  1

Discussions similaires

  1. Fonctions actuarielles pour excel
    Par arnest dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/01/2011, 14h48
  2. [XL-2003] Fonction file_get_content pour excel ?
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/04/2010, 13h48
  3. AutomationExcel pour écrire la fonction SOMME dans Excel
    Par antow42 dans le forum Visual C++
    Réponses: 1
    Dernier message: 05/08/2009, 15h41
  4. Fonction VBA sous Excel 2004 pour MAC
    Par tatayer_42 dans le forum Excel
    Réponses: 3
    Dernier message: 08/08/2008, 17h26
  5. Fonctions en C# avec aide pour Excel
    Par otavioreis dans le forum C#
    Réponses: 2
    Dernier message: 06/09/2007, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo