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 :

Deux IF dans une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Octobre 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 19
    Par défaut Deux IF dans une macro
    Bonjour à tous,

    Je voudrai mettre en place deux IF dans une macro mais j'arrive pas a avoir le résultat souhaité.

    Pour shématiser, disons que la formule souhaitée devra éxécuter le suivant: A=B, mais si B = "" alors A = C mais si C ="" alors A = D
    J'ai essayé de mettre en place un AND ou OR mais ca me donne pas le résultat que je veux.

    Le but est de remplir des cellules à partir d'autres cellules qui parfois sont vides. Du coup la donnée souhaitée est juste au-dessus de celles qui est vide, mais si celle-ci est également vide alors il faut prendre celle qui se trouve encore au-dessus... C'est tout con mais j'y arrive pas!

    Merci d'avance pour vos réponses.

    CDT

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Il y a sans doute plus simple mais voici une solution qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If B = "" Then
       If C = "" Then
          A = D
       Else
          A = C
    Else
       A = B
    End If
    Mais pour ton cas particulier, mieux vaut utiliser la fonction IIf()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = IIf(B = "", IIf(C = "", D, C), B)
    Un conseil : quand tu fais des structures imbriquées comme ça, pense bien à structurer ton code avec des itérations (décalages) pour t'y retrouver. Sinon, tu vas rapidement te mélanger les pinceaux.

  3. #3
    Membre averti
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Octobre 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2017
    Messages : 19
    Par défaut
    Ca marche! MerciMerciMerciMerciMenhir!

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Il y a sans doute plus simple
    Effectivement, en y réfléchissant un brin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A = B
    If A = "" Then A = C
    If A = "" Then A = D

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour à tous
    (vent + pluie = pêche fichue) -->> de retour -->>
    Juste pour rigoler (et on va en profiter pour travailler sur un nombre encore plus grand (on peut en rajouter au besoin) de variables (et prévoir si aucune remplie) --->>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    a = ""
    b = ""
    c = "cccccc"
    d = "dddddd"
    e = "eeeeeee"
    quoi = a & " " & b & " " & c & d & " " & e & " makache-walou-->nada-de-nada "
    quoi = Left(LTrim(quoi), InStr(LTrim(quoi), " ") - 1)
    MsgBox quoi

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

Discussions similaires

  1. [XL-2007] Passer à la ligne suivante dans une macro pour comparer deux lignes
    Par Holir dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/06/2017, 16h08
  2. Afficher deux colonnes dans une ListBox
    Par deubal dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/10/2005, 19h53
  3. pb dans une macro excel VB
    Par syl221 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2005, 17h29
  4. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 15h36
  5. [Struts] [JavaBean] Deux beans dans une Action
    Par jak0 dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/05/2005, 16h02

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