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 :

controler le format de saisie dans un combobox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut controler le format de saisie dans un combobox
    bonjour
    je cherche controle la saisie dans combobox .
    le combobox recoit une date au format JJ/MM/AAAA
    1) la saisie peut se faire par le calendrier via le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub ComboBox18_enter() 'on entre dans le combobox
    Me.MonthView1.Visible = True
    End Sub
     
    Private Sub MonthView1_DateClick(ByVal DateClicked As Date) 'recopie la valeur du calendrier
    ComboBox18.Value = MonthView1.Value
    MonthView1.Visible = False 'rend invible le calendrier
    End Sub
    2)l'utilisateur peut saisir manuellement en tapant dorectement la date ,
    c'est que je veux etre sur du format JJ/MM/AAAA en verifiant le format et les valeurs quelles ne soient pas fantaisistes comme 78/12/9999

    merci de l'aide

  2. #2
    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,

    D'instinct (puisque tu utilises un contrôle MONTVIEW) :

    Au focus (évènement Enter) , quand tu rends visible le MONTVIEW, rien ne t'empêche, dans la foulée, d'inhiber ta ComboBox (propriété enabled = False).

    A la fin de le saisie dans le MONTVIEW ==>> tu passes sa valeur à ta Combo en lui rendant sa propriété enabled = True

    Fastoche, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox18_enter() 'on entre dans le combobox
      Me.MonthView1.Visible = True
      ComboBox18.enabled = false
    End Sub
     
    Private Sub MonthView1_DateClick(ByVal DateClicked As Date) 'recopie la valeur du calendrier
      ComboBox18.enabled = True
      ComboBox18.Value = MonthView1.Value
      MonthView1.Visible = False 'rend invible le calendrier
    End Sub

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut
    salut
    oui , effectivement c'est encore plus sur
    mais c'est surtout pour la saisie dans l'utilisation du montview que je veux verifier!

    2)l'utilisateur peut saisir manuellement en tapant dorectement la date ,
    c'est que je veux etre sur du format JJ/MM/AAAA en verifiant le format et les valeurs quelles ne soient pas fantaisistes comme 78/12/9999



  4. #4
    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
    Vérifie alors en utilisant IsDate (encore que.... bref...)...

    Je regrette tellement qu'une autre discussion ait mal tourné il y a un mois environ...

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Par défaut

    ouf j'ai deja oublié , pas de probleme, je suis aussi fautif

    bravo à tous pour le forum

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu tiens à contrôler la saisie, tu ne peux le faire qu'à l'exit du combobox sans compliquer trop les tests. Tu peux faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim ok As Boolean
        ok = ComboBox1 Like "##/##/####" And IsDate(ComboBox1)
        ok = ok And Val(Mid(ComboBox1, 1, 2)) < 32
        ok = ok And Val(Mid(ComboBox1, 4, 2)) < 13
        If Not ok Then
            MsgBox "Saisir une date valide au format jj/mm/aaaa"
            Cancel = True
        End If
    End Sub
    Mais je suis de l'avis d'ucfoutu (pour cette fois ) si tu neutralise le combo le temps de la sélection dans le calendrier, ce serait plus mieux sioux
    Par contre je reste partisan d'un contrôle global des données saisies lors de la validation de ces données... (Bonjour uc...)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/03/2008, 11h53
  2. impose la saisie dans un combobox
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2008, 19h30
  3. Interdire la saisie dans une combobox
    Par natie_49 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 19/12/2006, 12h27
  4. Vitesse de saisie dans une combobox.
    Par Delphi-ne dans le forum Delphi
    Réponses: 2
    Dernier message: 12/10/2006, 13h17
  5. [VB6] Comment faire pour annuler la saisie dans un combobox ??
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 14/06/2006, 15h16

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