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 :

Ne prend pas en compte le Else avec un ElseIF vba excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur maintenance industriel
    Inscrit en
    Juin 2018
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur maintenance industriel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 185
    Points : 79
    Points
    79
    Par défaut Ne prend pas en compte le Else avec un ElseIF vba excel
    Bonjour,

    Dans mon code j'ai une condition qui n'est pas pris en compte et je ne comprend pas pourquoi.

    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
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim Numéro As String
    Dim I As Byte
    With ListBox1
       For I = 1 To 9
    If ListBox1.Selected(I) = True Then
    Numéro = .List(.ListIndex, 0)
     
        If .List(.ListIndex, 1) = "FTS" Then
            FTSConsult.TextBoxNfiche.Value = Numéro
            AffichRecherche.Hide
            FTSConsult.Show
            Exit Sub
     
     
        ElseIf .List(.ListIndex, 1) = "FTA" Then
            FTSConsult.TextBoxNfiche.Value = Numéro
            AffichRecherche.Hide
            FTSConsult.Show
            Exit Sub
     
     
        ElseIf .List(.ListIndex, 1) = "IT" Then
            ITConsult.TextBoxNfiche.Value = Numéro
            AffichRecherche.Hide
            ITConsult.Show
            Exit Sub
     
     
        Else
            dosConsult.TextBoxNfiche.Value = Numéro
            AffichRecherche.Hide
            dosConsult.Show
            Exit Sub
     
        End If
    End If
    Next I
    End With
    End Sub
    Cette partie n'est pas pris en compte et je ne sais pas pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Else
            dosConsult.TextBoxNfiche.Value = Numéro
            AffichRecherche.Hide
            dosConsult.Show
            Exit Sub
    J'ai bien essayer de faire ça a la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     ElseIf InStr(1, DOS.Value, "DOS") <> 0 Then
            dosConsult.TextBoxNfiche.Value = Numéro
            AffichRecherche.Hide
            dosConsult.Show
            Exit Sub
    Mais cela ne fonctionne pas non plus.
    Une solution ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 595
    Points : 34 274
    Points
    34 274
    Par défaut
    Salut,

    Quand tu dis que ce n'est pas pris en compte, c'est que ton code rentre dans la partie Else et n'execute pas les lignes ou que le code ne rentre meme pas dans le Else ?

    En mode pas à pas ?

    Tu peux remplacer ton If ElseIF par un Select Case aussi
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Tu peux remplacer ton If ElseIF par un Select Case aussi
    Bonjour,

    d'accord avec la question soulevée : est-ce que le code ne rentre pas dans le bloc Else ou c'est un autre souci ?
    proposition avec Select Case, à adapter, j'ai viré la variable numéro avec accent, c'est déconseillé

    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
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim Numero As String
    Dim I As Byte
        With ListBox1
            For I = 1 To 9
                If .Selected(I) = True Then
                    Numero = .List(.ListIndex, 0)
     
                    Select Case .List(.ListIndex, 1)
                        Case "FTS", "FTA"
                            FTSConsult.TextBoxNfiche.Value = Numero
                            FTSConsult.Show
                        Case "IT"
                            ITConsult.TextBoxNfiche.Value = Numero
                            ITConsult.Show
                        Case Else
                            dosConsult.TextBoxNfiche.Value = Numero
                            dosConsult.Show
                    End Select
     
                    AffichRecherche.Hide
                    Exit Sub
                End If
            Next I
        End With
    End Sub

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur maintenance industriel
    Inscrit en
    Juin 2018
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur maintenance industriel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 185
    Points : 79
    Points
    79
    Par défaut
    Bonjour à tous les deux,
    Je voulais dire par la que même pas à pas cela ne passais pas par le Else.
    Cela en revanche fonctionne avec le case. C'est à ne rien comprendre xD
    Merci pour m'avoir montrer la méthode case que je ne connaissais pas.
    Par rapport à if qu'elle son ses avantages ?
    Cordialement,
    Passepartout007

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/06/2011, 09h38
  2. [Info]Eclipse ne prend pas en compte mes modifs...
    Par Baptiste Wicht dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/01/2006, 17h50
  3. Visual Basic ne prend pas en compte mon chgt de variable
    Par Crazy_Gun dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 09/12/2005, 14h40
  4. ne prend pas en compte le "0" ? comprend pas !!!
    Par pierre987321 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/10/2005, 19h39
  5. [JAR] Archive qui ne prend pas en compte librairie externe
    Par Shiryu44 dans le forum Général Java
    Réponses: 3
    Dernier message: 22/04/2005, 13h59

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