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 :

Synthaxe Select Case étrange


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 121
    Par défaut Synthaxe Select Case étrange
    Bonjour,

    J'ai récupéré un code qui valide une saisie de date dans un champ textbox, aucun problème il fonctionne parfaitement mais je ne comprends pas la signification du 2 devant l'instruction "Select Case".
    Si je le supprime la routine ne fonctionne plus !
    Quand je consulte l'aide sur cette instruction il n'est pas mentionné ce genre d'écriture.
    Quelqu'un peut-il m'expliquer l'intérêt de ce '2' et surtout sa fonction ?

    @+

    Nono

    Ci-dessous une partie de ce 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    Sub ValidationDate(TextBox As Object)
    Dim Reponse As Variant
    Dim LaDate As String
     
     
    2 Select Case Len(TextBox.Value)
        Case 1
            If CLng(TextBox.Value) > 3 Then
                Reponse = MsgBox("Le jour ne peut pas commencer par " & TextBox.Value, vbOKOnly, "Erreur de saisie")
                TextBox.Value = ""
                Exit Sub
            End If
        Case 2
            If CLng(TextBox.Value) > 31 Then
                Reponse = MsgBox("Le mois ne peut avoir plus de 31 jours", vbOKOnly, "Erreur de saisie")
                TextBox.Value = Left(TextBox.Value, 1)
                Exit Sub
            Else
                TextBox.Value = TextBox.Value & "/"
            End If
        Case 4
            If Right(TextBox.Value, 1) > 1 Then
                Reponse = MsgBox("L'année ne peut avoir plus de 12 mois", vbOKOnly, "Erreur de saisie")
                TextBox.Value = Left(TextBox.Value, 3)
                Exit Sub
            End If
        Case 5
            If CLng(Right(TextBox.Value, 2)) > 12 Then
                Reponse = MsgBox("L'année ne peut avoir plus de 12 mois", vbOKOnly, "Erreur de saisie")
                TextBox.Value = Left(TextBox.Value, 4)
                Exit Sub
            Else
                TextBox.Value = TextBox.Value & "/"
            End If
        Case 8
        LaDate = Left(TextBox.Value, 6) & "20" & Right(TextBox.Value, 2)
        If Not IsDate(LaDate) Then
            Reponse = MsgBox("Le " & TextBox.Value & " n'existe pas ", vbOKOnly, "Erreur de saisie")
            TextBox.Value = ""
            Exit Sub
        End If
        If CDate(LaDate) < DateMini Then
            Reponse = MsgBox("La date doit être postérieure au " & DateMini, vbOKOnly, "Erreur de saisie")
            TextBox.Value = ""
            Exit Sub
        End If
        If CDate(LaDate) > DateMaxi Then
            Reponse = MsgBox("La date doit être antérieure au " & DateMaxi, vbOKOnly, "Erreur de saisie")
            TextBox.Value = ""
            Exit Sub
        End If
        Valide = True
    End Select
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je ne suis pas sur mais généralement ça correspond à un 'Goto'. Le seul problème c'est qu'il n'y en a pas dans le code que tu as posté.

    Exemple de la fonction 'Goto':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Explicit
     
    Sub TestGoto()
     
    1   Debug.Print ("Boucle infinie")
        GoTo 1
     
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 121
    Par défaut
    Re,

    Pourquoi ne puis-je pas le retirer ?

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    que se passe-t-il lorsque tu le retire ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 121
    Par défaut
    Rien, comme si la sub n'était pas exécutée, le "select case" est comme non parcouru...

Discussions similaires

  1. Problème SELECT, CASE et Group by
    Par Royd938 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2014, 07h41
  2. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 4
    Dernier message: 15/05/2006, 14h40
  3. Probleme avec Select Case
    Par GeffD dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/03/2005, 15h28
  4. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 12
    Dernier message: 06/01/2005, 15h33
  5. vérification de passage dans un select case
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h05

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