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 :

VBA, Excel If, ElseIf ,then


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mai 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1
    Par défaut VBA, Excel If, ElseIf ,then
    Bonjour!

    Je n'arrive pas à imbriquer plusieurs conditions au sein d'une sub, voici ce que j'ai fait:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Private Sub Commandbutton_Click()
    Worksheets("feuil1").Activate
     
    If optionbutton1 = True Then
     
        If ComboBox.listindex = x Then
        label.Caption = Range("A1").Value
     
        If ComboBox.listindex = y Then
        label.Caption = Range("A2").Value
     
        Else
        label.Caption = Range("A3")
     
    End If
    End If
     
    ElseIf optionbutton2 = True Then
     
        If ComboBox.listindex = x Then
        label.Caption = Range("B1").Value
     
        If ComboBox.listindex = y Then
        label.Caption = Range("B2").Value
     
        Else
        label.Caption = Range("B3").Value
    End If
    End If
     
    ElseIf optionbutton3 = True Then
     
        If ComboBox.listindex = x Then
        label.Caption = Range("C1").Value
     
        If ComboBox.listindex = y Then
        label.Caption = Range("C2").Value
     
        Else
        label.Caption = Range("C3").Value
    End If
    End If
     
    End If
    End Sub
    Et voilà, à chaque fois la même valeur apparaît pour chaque optionbutton respectivement: A3, B3 et C3...

    Je vous serais énormément reconnaissant de m'aider!!

    Merci et bonne soirée!!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Perrinec
    Donner un code qui ne fait pas ce que tu veux ne sert à rien!
    Donne le but à atteindre! Sans idée de ce qu'on doit faire, comment comprendre le problème ?
    Tu as trois bouton et ?
    A+

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If optionbutton1 = True Then
       If ComboBox.listindex = x Then
           label.Caption = Range("A1").Value
           If ComboBox.listindex = y Then
              label.Caption = Range("A2").Value
           Else
              label.Caption = Range("A3")
           End If
        End If
    Déjà : en indentant proprement, on voit bien qu'il y a erreur de syntaxe (sans préjudice du reste)...ou alors un code recopié incomplètement
    On se demande enfin à quoi peut bien servir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label.Caption = Range("A1").Value
    puisque l'on remodifie le caption de ce label quel que soit le cas de figure

    Il n'est par ailleurs pas adroit de nommer "Label" un contrôle Label

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut ucfoutu
    Déjà : en indentant proprement, on voit bien qu'il y a erreur de syntaxe (sans préjudice du reste)...ou alors un code recopié incomplètement
    Je pense plutôt à un code mal compris et "adapter" ligne par ligne, sans tenir compte de la globalité du fonctionnement. Je pense à une erreur de raisonnement, pas de syntaxe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If ComboBox.ListIndex = x Then
            If ComboBox.ListIndex = y Then
    me laisse pantois
    La 2me instruction ne pouvant être exécutée que si la 1er est à VRAI, je subodore que la 2me sera toujours à FAUX (mais je peut me tromper

    Déjà, une déclaration obligatoire des variables amènerait sans doute des erreurs. Renommer ComboBox et Label des contrôles m'interpelle moi aussi.
    Le code me laisse supposer l'utilisation de contrôles issus de la barre d'outils "Boîte à outils contrôle"

    une petite explication du but à atteindre me semble plus nécessaire que de mettre un code qui ne marche pas (j'en ai plein en réserve si on en a besoin)
    Et vu la tournure, un petit fichier d'essai ne serait pas un luxe.

    A+

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Par défaut
    Salut,

    Une autre solution est d'utiliser "Select Case":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    If optionbutton1 = True Then
     
       Select Case  ComboBox.listindex 
                Case x  
                       label.Caption = Range("A1").Value
                Case y 
                       label.Caption = Range("A2").Value 
                Case Else 
                       label.Caption = Range("A3")    
       End Select
     
    End If

  6. #6
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    Bonjour,
    Quand on fait cette macro, le case y ne marche pas.
    Quand le case x n'a pas lieu, il semble que la macro va directement au case else, car le résultat qui s'affiche est le même pour le case y et le case else.
    Comment faire pour modifier ça? ça ne doit pas être bien dificile...
    Merci d'avance!

Discussions similaires

  1. {VBA Excel} Probleme de IF Then
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 20/06/2007, 14h06
  2. [vba-excel] Le temps de fermeture trop court ?
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 10h03
  3. [VBA-Excel]
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2005, 10h17
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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