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

Langage Delphi Discussion :

Division par zéro (#DIV/0) dans Excel


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 46
    Points : 50
    Points
    50
    Par défaut Division par zéro (#DIV/0) dans Excel
    Bonjour.

    J'ai dévelopé une application avec laquelle je crée des tableaux dans MS Excel. Dans une colonne j'ai une formule de division des entiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonOLE.Cells.Item[MaLigne, 12].FormulatR1C1 := 'RC[-1]/Debit_Std';
    Debit_Std est une valeur que je récupère dans un fichier. Quand cette valeur est = 0 (zéro) le fameux message #DIV/0 apparait dans la cellule. J'ai essayé de parer cela avec la formule suivante ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonOLE.Cells.Item[MaLigne, 12].FormulatR1C1 := 'IF(ESTERREUR(RC[-1]/Debit_Std),"",RC[-1]/Debit_Std)';
    Mais là encore c'est un autre message #NOM! qui apparait.

    Quelqu'un peut-il me montrer où est mon erreur ?

    Question subsidiaire sur un TStringGrid : Est-il possible de selectionner par ex. la denière cellule de la première ligne d'un TStringGrid ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Salut;

    à mon avis il te manque un second test qui tient compte du vide. donc, il faut que ton premier if imbrique un autre if qui teste sur le contenu de la cellule.

    Bonne chance.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 46
    Points : 50
    Points
    50
    Par défaut Division par zéro (#DIV/0) dans Excel
    Merci Kelloucheaeh. A propos de cellule vide, tu veux parler de laquelle ? Celle qui va contenir la formule ou celle identifiée par RC[-1] ?

    J'avoue que je ne vois pas très bien comment faire cette imbrication. Si tu peux glisser un exemple.

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Re;

    voilà ce que je voulais dire:

    soit c := a/b
    si b = vide alors écrire("blablabla")
    sinon si b = 0 alors écrire("blablabla")
    fin si
    écrire c := a/b;

    ou bien

    si (b = vide ou b = 0) alors écrire("blablabla")
    sinon écrire c := a/b;
    fin si

    bon codage.

  5. #5
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    a mon avis, tu as un probleme de langue, tu melange "if" et "esterreur".
    il faudrait surement utiliser "if" & "iserror" ou "si" & "esterreur".

    Mais bon, il y a plus simple, en evitant de creer l'erreur comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonOLE.Cells.Item[MaLigne, 12].FormulatR1C1 := 'IF(Debit_Std=0,"",RC[-1]/Debit_Std)';

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 46
    Points : 50
    Points
    50
    Par défaut Division par zéro (#DIV/0) dans Excel
    Merci à tous pour toutes vos réponses.

    guillemouze :
    Vous avez trouvé juste, il fallait remplacer EstErreur par IsError et ca marche : question de syntaxe. Merci

    Encore merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Division par zéro
    Par soltani1 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 18/05/2006, 09h42
  2. [Tableaux] Pb de division par zéro...
    Par blueice dans le forum Langage
    Réponses: 8
    Dernier message: 16/12/2005, 15h52
  3. [CR][VS.NET]Division par zéro
    Par San Soussy dans le forum SDK
    Réponses: 2
    Dernier message: 31/08/2005, 14h40
  4. [CR8.5] Problème de division par zéro sur formule
    Par franck.cvitrans dans le forum Formules
    Réponses: 3
    Dernier message: 10/06/2004, 13h41
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 18h14

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