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 :

condition if et elseif (version 2017)


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut condition if et elseif (version 2017)
    bonjour je travail sur un projet VBA pour les cours mais j'ai débuté la programmation cette année.
    mon objectif est le suivant : je veux afficher une image en fonction de la luminosité souhaité.
    pour ça 4 choix possibles (très lumineux/ lumineux/ tamisé/ sombre) je récupère ensuite l'information dans une cellule excel et je la met dans une variable.
    jusque la tout marche mais quand je veux mettre en place ma procédure avec des if imbriqués ou des elseif j'ai soit un message d'erreur me disant que je met trop de End if soit ma variable ne se test pas avec le premier if.
    De plus dans mes if j'ai une deuxième condition qui doit être vérifié j'avais donc utiliser un bloc And.
    j'espère que je suis compréhensible je vous met la partie du code qui me pose problème en dessous car mon fichier fait plusieurs Mo a cause des images.
    merci d'avance pour votre aide mon travail est à rendre pour le 30 décembre...

    1er code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If lumiere = "lumineux" Then
    If meteo = "averse" Then I_50_75_averse.Visible = True
    ElseIf meteo = "ciel couvert" Then I_50_75_cielcouvert.Visible = True
    ElseIf meteo = "peu nuageux" Then I_50_75_peunuageux.Visible = True
    Else: I_50_75_brouillardbruinepluie.Visible = True
    End If
    2nd code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If lumiere = "très lumineux" And meteo = "Averses de pluie" Then
    I_50_75_averse.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel couvert" Then I_50_75_cielcouvert.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel peu nuageux" Then I_50_75_peunuageux.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel très nuageux" Then I_50_75_tresnuageux.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel serein" Then I_50_75_serain.Visible = True
    Else: I_50_75_brouillardbruinepluie.Visible = True
    End If

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 732
    Par défaut
    Bonjour, premièrement soyez gentil de mettre le code entre balises # ça le rend plus lisible.
    Deuxièmement c'est pas clair du tout vos explications voici la forme que j'utiliserai pour le premier test
    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
    Sub test()
          'Ce code n'est pas testé, vous devez le tester. pensez  a l'indentation qui vous permet de retrouver à vue les diverses parties des fonctions "Si" imbriquées.
    If lumiere = "lumineux" Then
        If meteo = "averse" Then
            I_50_75_averse.Visible = True
        ElseIf meteo = "ciel couvert" Then
            I_50_75_cielcouvert.Visible = True
        ElseIf meteo = "peu nuageux" Then
            I_50_75_peunuageux.Visible = True
        Else:
            I_50_75_brouillardbruinepluie.Visible = True
        End If
    Else
    End If
    End Sub
    Deuxième partie non testée non plus.
    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
    Sub test2()
    If lumiere = "très lumineux" And meteo = "Averses de pluie" Then
            I_50_75_averse.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel couvert" Then
            I_50_75_cielcouvert.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel peu nuageux" Then
            I_50_75_peunuageux.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel très nuageux" Then
            I_50_75_tresnuageux.Visible = True
    ElseIf lumiere = "très lumineux" And meteo = "Ciel serein" Then
            I_50_75_serain.Visible = True
    Else
            I_50_75_brouillardbruinepluie.Visible = True
    End If
    End Sub
    Testez déjà cela et tenez nous au courant des résultats.
    Cordialement

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2019
    Messages : 4
    Par défaut
    merci pour votre aide j'ai réussi a résoudre mon problème en m'aidant de votre premier code.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/12/2017, 20h59
  2. Unity arrive en version 2017.2 et apporte de nouveaux outils de création de niveaux 2D
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 12
    Dernier message: 17/10/2017, 19h36
  3. Unity arrive en version 2017.1 et intègre Timeline et Cinemachine
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 13/07/2017, 16h49
  4. [Débutant] Conditions if/else/elseif
    Par cslay dans le forum MATLAB
    Réponses: 2
    Dernier message: 10/06/2011, 22h59
  5. Réponses: 9
    Dernier message: 29/03/2011, 20h45

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