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 :

Boucles conditions simultanées.


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
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut Boucles conditions simultanées.
    Bonjour,

    Je dispose d'un UF qui est complété par un utilisateur. Dans cet UF, j'ai 3 cases que je peux cocher. Mais j'ai le choix entre cocher 1 des 3 cases, 2 des 3 cases ou les 3 cases en même temps.

    Pour ce faire, j'ai simplement utilisé des If. Le problème c'est que je ne peux cocher qu'une seule des 3 cases puisque une fois que la condition If est vérifiée, le programme s'arrête.

    Quel type de boucle puis-je utiliser ?


    PS: Voici le code que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If CAO.Value = True Then                                                     
                                '
                                '
                        If maquettage.Value = True Then                                     
                                               '
                                               '
                                If impression.Value = True Then

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

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    C'est un exemple le code peut être différent
    a renouveler pour les autres cases à cocher.
    Cordialement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
    Range("j2") = "Oui"
    Else
    Range("j2") = "non"
    End If
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut
    Merci de ta réponse,

    Mais sauf erreur de ma part il me semble que "If" ne peut gérer que 2 conditions maxi , non ?

    Je ne peux pas utiliser un Select Case ?

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

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Pas du tout, la fonction if peut avoir de multiples possibilités.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If Range("A1") = 1 then
           'Code
    ElseIf Range("A1") = 2 then
           'Code
    ElseIf Range("A1") = 3 then
         'Code
    ElseIf Range("A1") = 4 then
          'Code
    End if

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 22
    Par défaut
    Je vien de tester sur un fichier "Test", voici mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
        If CheckBox1.Value = True Then
        Cells("1,1").Value = "X"
            ElseIf CheckBox2.Value = True Then
            Cells("2,2").Value = "X"
                ElseIf CheckBox3.Value = True Then
                Cells("3,3").Value = "X"
        End If
    End Sub
    Ce programme fonctionne si je coche 1 des cases. Mais si par exemple je coche 2 cases ou les 3, je n'ai que la 1ere instruction qui est réalisée. En gros je voudrais que si je coche 2 cases, les 2 instructions soit réalisées.
    Quelle boucle dois-je associer ?

  6. #6
    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
    En écrivant des blocs if complets (sans else ni elseif) -->> exemple -->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if a = b then
     ..... instructions 1
    end if
    if c = d then
    ..... instructions 2
    end if
    Mais en aucun cas ne seront exécutées SIMULTANEMENT les instructions 1 et les instructions 2.
    Dans cet exemple : si a = b ET que c = d, les instructions 1 seront exécutées et- les instructions 2 ne le seront qu'après la fin des instructions 1

Discussions similaires

  1. [XL-2003] Problème boucle à condition
    Par Aliass01 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/10/2014, 12h58
  2. [Débutant] Deux incréments dans une boucle for simultanément
    Par lFantasyz dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/04/2014, 16h19
  3. [Débutant] probleme avec boucle + conditions
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/04/2010, 08h16
  4. [Fortran 77] Boucle à condition
    Par Penthee dans le forum Fortran
    Réponses: 3
    Dernier message: 08/09/2008, 08h47
  5. Optimisation de code imbrication boucle+condition
    Par kouesta dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2008, 09h08

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