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

Macros et VBA Excel Discussion :

retourner une valeur en testant des valeurs d'erreur [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut retourner une valeur en testant des valeurs d'erreur
    Bonjour,

    J'ai un tableau comme ceci :
    [A1]=Diamètre 1: [B1]=#N/A
    [A2]=Diamètre 2: [B2]=38
    [A3]=Diamètre 3: [B3]=#N/A

    Maintenant ce que je veux c'est :
    [C1]=Valeur à retourner: [C2]=...

    Et pour cet exemple, je veux qu'à la place des "...", ce soit la valeur 38 qui s'affiche.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [C2]=SI(B1<>"";B1;SI(B2<>"";B2;SI(B3<>"";B3;"ERREUR")))
    Mais ça ne marche pas, ça me renvoie : #N/A

    Comment faire svp?
    Je me doute que c'est très bête...
    Merci par avance,
    Aud- [débutante]

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour canary, re le forum,

    Essayes comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [C2]=SI(ESTNA(B1) ="FAUX";B1;SI(ESTNA(B2) ="FAUX";B2;SI(ESTNA(B1) ="FAUX";B3;"ERREUR")))
    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut
    je viens d'essayer et ça ne marche pas.
    De plus, pourrais-tu expliquer stp? merci

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    j'ai repris simplement ta formule en remplaçant
    par
    parce que j'ai vu, d'après ton premier post que B1 retournait N/A, donc mon code est logique sinon il faut que tu donne plus d'explication.

    Mais si c'est un code VBA que tu cherches, ce n'est pas du tout ça
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Oui bizarre ton code, tu mélanges formule excel et code vba, je pense que tu souhaites un code vba (bien qu'une formule ferait certainement l'affaire, du moins pour cette partie du code)

    Pour du vba je pencherais pour un truc dans ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim TmpStr As string
     
    tmpStr = [B1]
    If TmpStr = "" Then TmpStr = [B2]
    If TmpStr = "" Then TmpStr = [B3] 
    If TmpStr = "" Then TmpsStr = "Erreur"
     
    [C2] = TmpStr
    En esperant avoir saisi ta demande.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut
    et en formule "+ simple" (sans VBA) ça donnerait quoi alors?

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je pense car je ne connais pas ta finalité que tu t'es trompé au départ quand tu envoies ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B1<>"";B1;SI(B2<>"";B2;SI(B3<>"";B3;"ERREUR")))
    en formule dans la cellule, tu ne voudrais pas plutot cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(a1<>"";38;"erreur")
    mais tu cherches peut-etre autre chose
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Re
    J'avais mal interprété ta question, je m'en suis rendu compte en relisant, voila sans vba et avec la possibilité d'étendre le nombre de paramètres a l'infini

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut
    Bonjour,

    J'ai testé votre classeur et ce n'est pas ce que je recherche (je trouve ça super compliqué de décaler les cellules alors qu'il me semble que la solution doit être hyper simple).

    Je vous ai mit en fichier joint ce que je cherche à avoir en prenant les 6 cas possibles que je pourrais rencontrer dans mon travail.

    Dans les cellules en jaune :
    - il faut que j'ai toujours la même formule quelque soit l'exemple
    - il faut qu'il m'affiche 38 dans tous les cas possibles

    Comment faire?
    Merci pour votre aide!
    Aud-

  10. #10
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour canary, Qwaz,

    je ne comprends rien, il suffit de mettre 38 dans les cellules jaunes sinon, une idée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI(C3:C5;38)>=1;38;"")
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NON(ESTNA(C3));C3;SI(NON(ESTNA(C4));C4;C5))
    pourrait correspondre à ce que tu souhaites obtenir
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut
    Merci Pierre, ça fonctionne très bien!

    et pour répondre à casefayere : j'ai pris un exemple avec 38 mais ce sont des valeurs qui changent! parce que je vais les chercher dans un autre tableau suivant des conditions. Bref, c'est compliqué et c'est pour cela que j'avais mis 38 en exemple

    Merci à tous!

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

Discussions similaires

  1. INSERT avec une sous requete et des valeurs
    Par sabotage dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2008, 13h00
  2. Réponses: 2
    Dernier message: 13/12/2007, 16h02
  3. Réponses: 1
    Dernier message: 04/12/2007, 17h28
  4. cocher une case en fonction des valeurs sur plusieurs plages
    Par flyfranky dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 15/11/2007, 11h20
  5. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 15h19

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