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 :

du basique if elseif endif


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 16
    Par défaut du basique if elseif endif
    bonjour,
    Nul en vba, j'ai besoin d'obtenir un résultat mais je ne parviens pas à illucider le bug qui m'empéche d'aboutir.

    au regard du code ci-dessous, je souhaiterais ceci:

    checkbox1 à true(checkbox2 false) alors, quand clic bouton, b1 en jaune

    checkbox2 à true (checkbox1 false) alors, quand clic bouton, b2 en bleu

    checkbox1 et checkbox2 à true alors, quand clic bouton, b1 en jaune et b2 en bleu

    et uniquement si les 2 sont à false, alors
    MsgBox "rien n'est coché"

    le bug dans le code ci-dessous est que, quand les 2 sont cochés, je n'ai que b1 jaune qui s'active

    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
    16
    17
    18
    Private Sub CommandButton1_Click()
    If CheckBox1.Value = True Then
            Range("B1").Select
        With Selection.Interior
            .ColorIndex = 6
            .Pattern = xlSolid
        End With
     
        ElseIf CheckBox2.Value = True Then
            Range("B2").Select
        With Selection.Interior
            .ColorIndex = 8
            .Pattern = xlSolid
        End With
     Else
     MsgBox "rien n'est coché"
     End If
     End Sub
    Merci à ceux qui sauront éclairer ma lanterne.

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Essaie comme ca.
    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
    16
    17
    18
    19
    20
    Option Explicit
     
    Private Sub CommandButton1_Click()
        With Range("B1:B2").Interior
            .ColorIndex = xlNone
            .Pattern = xlSolid
        End With
     
        If Not CheckBox1 And Not CheckBox2 Then
            MsgBox "rien n'est coché"
        Else
            If CheckBox1.Value = True Then
                Range("B1").Interior.ColorIndex = 6
            End If
     
            If CheckBox2.Value = True Then
                Range("B2").Interior.ColorIndex = 8
            End If
         End If
     End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 16
    Par défaut
    Merci Minick ça marche nickel
    peux-tu juste m'expliquer le début:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Range("B1:B2").Interior
            .ColorIndex = xlNone
            .Pattern = xlSolid
        End With
    merci encore

  4. #4
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Re,

    Plutot que d'enlever le fond si la condition n'est pas rempli, on enleve le fond
    des le debut. Ca nous evite de faire un 'sinon' dans l'instruction If..Else...

    Donc la on eleve le fond des cellules B1, B2 et ensuite on colorie si la condition est rempli

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 16
    Par défaut
    Merci pour tes explications Minick
    sympa

    à bientôt

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    Bonjour,
    moi, je te propose pour le plaisir ce petit jeu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    verif = Val(CheckBox1.Value * -1 & CheckBox2.Value * -1)
    Select Case verif
      Case 0: MsgBox "rien de coché"
      Case 1: MsgBox "seule la checkbox2 est cochée"
      Case 10: MsgBox "seule la checkbox1 est cochée"
      Case 11: MsgBox "les 2 sont cochées"
    End Select
    et te laisse le soin de remplacer par tes instructions de coloriage les msgbox

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

Discussions similaires

  1. différence entre If End If et If elseIf Endif
    Par naty76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/02/2009, 10h43
  2. Réponses: 5
    Dernier message: 04/03/2005, 12h14
  3. [LG]plantage sur une commande basique !
    Par Jeff on the web dans le forum Langage
    Réponses: 5
    Dernier message: 13/01/2004, 19h07
  4. curses très basiques ...
    Par Akoino dans le forum C
    Réponses: 4
    Dernier message: 05/12/2003, 18h21

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