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

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Points : 181
    Points
    181
    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
    Points : 5 537
    Points
    5 537
    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 habitué
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Points : 181
    Points
    181
    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
    Points : 5 537
    Points
    5 537
    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 habitué
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Points : 181
    Points
    181
    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
    Points : 15 546
    Points
    15 546
    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...)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    bonjour,

    sur la controle saisie des dates nous avions eu cette discussion

    http://www.developpez.net/forums/sho...=435532&page=3

    voir la procedure a la fin de la discussion

  8. #8
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par patbou Voir le message
    bonjour,

    sur la controle saisie des dates nous avions eu cette discussion

    http://www.developpez.net/forums/sho...=435532&page=3

    voir la procedure a la fin de la discussion
    Oui, je me souviens, mais, en cas d'erreur, le code que tu mets ne renvoie pas dans le Combo pour modification

    Edit
    En outre, tu peux écrire mm/jj/yyyy, ta saisie sera (je pense) reconnue comme une date, donc pas au bon format (je suppose...)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    ce code est bien sur a adapter pour un combo

    retenir le principe

    1/ controle du format de saisie (##,### .........)
    2/verifier si la variable est une date par l 'utilisation de la gestion d erreur (cdate)

  10. #10
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 502
    Points : 181
    Points
    181
    Par défaut
    bonjour à tous et à toute

    merci
    je vais suivre les conseils de ouskel'n'or
    je reste uniquement sur une saisie de calendrier avec verrouillage apres la saisie de la date.


    merci

+ 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