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 :

problème avec SELECT CASE


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
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut problème avec SELECT CASE
    Bonsoir

    Je suis confronté à un petit problème

    A partir d'un inputbox, je fixe la valeur d'une variable défie au préalable comme publique et de type string.

    En fonction des valeurs de cette variable je détermine certaines actions à accomplir et j'utilise la forme select case

    voici mon code
    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
     
    JourSem = InputBox("Pour quel jour de la semaine voulez-vous imprimer les feuilles de garde ?", "Impression feuilles de garde")
     
    '    MsgBox (JourSem)
     
        Select Case JourSem
     
        Case "lundi"
        Champ = 10
        Call TriToursGardeSem
     
        Case "mardi"
        Champ = 11
        Call TriToursGardeSem
        Case "mercredi"
        Champ = 12
        Call TriToursGardeSem
        Case JourSem = "jeudi"
        Champ = 13
        Call TriToursGardeSem
        Case JourSem = "vendredi"
        Champ = 14
        Call TriToursGardeSem
        Case JourSem = "samedi"
        Call ImpressionSamedi
     
    End Select
    Jusqu'au mercredi ca fonctionne, la procédure TriToursGardeSem est bien appelée et exécutée.

    Par contre pour jeudi, vendredi et samedi... l'appel aux procédures indiquées est ignoré et l''instruction située après le end Select est directement exécutée...
    Afin d'éviter des fautes de frappe, j'ai défini ma variable à partir d'une listbox au sein d'un userform et j'ai le même souci...

    Avez-vous une idée de la source du problème ?

    merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 267
    Par défaut
    Bonsoir,

    Pourquoi d'un coté mets tu : Case "mercredi" et de l'autre Case JourSem = "samedi"

    Mets Case "Samedi"

    Amicalement

    Dan

  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
    Bonjour,

    Je ne choisirais personnellement pas une inputbox (qui complique la vie de l'utilisateur) dans un tel cas, mais un container visible/invisible avec une listbox préremplie)...

    Mais si tu tiens à ton inputbox, simplifie au moins la vie de l'utilisateur. Gère les erreurs, répare les fautes de casse et les espaces indus...
    Ainsi :

    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
    Private Sub Command1_Click()
      Dim champ As Integer, JourSem As String, toto
      champ = 0
      Do While champ = 0
        JourSem = InputBox("Pour quel jour de la semaine voulez-vous imprimer les feuilles de garde ?", "Impression feuilles de garde")
        toto = Array("lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi")
        For i = 0 To UBound(toto)
          If toto(i) = Trim(LCase(JourSem)) Then
            champ = i + 10
            Exit Do
          End If
        Next
        MsgBox "jour inconnu"
      Loop
      'MsgBox champ  ' je l'ai laissé là si tu veux vérifier ....
      If champ <= 14 Then
        TriToursGardeSem champ
      Else
        ImpressionSamedi
      End If
    End Sub
    Te reste à ajouter un paramètre champ à ta procédure TriToursGardeSem

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Par défaut
    Merci pour les réponses.
    L'erreur vient en fait du problème soulevé par Nad-Dan.

    Je m'en suis aperçu un peu après avoir posté.

    Entre temps, je suis aussi passé par la listbox.

    Voilà donc mon problème résolu et merci pour vos contributions

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

Discussions similaires

  1. [XL-2003] Problème avec select case
    Par tioch dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2011, 13h39
  2. probléme avec Select Case
    Par polodu84 dans le forum Général VBA
    Réponses: 9
    Dernier message: 01/02/2008, 11h57
  3. [Débutant] Problème avec select case
    Par feynman dans le forum Fortran
    Réponses: 2
    Dernier message: 11/09/2007, 15h35
  4. Problème avec select case
    Par juliopony dans le forum Fortran
    Réponses: 4
    Dernier message: 14/06/2007, 20h57
  5. Problème avec Select case !
    Par kaiser59 dans le forum ASP
    Réponses: 4
    Dernier message: 27/05/2007, 12h55

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