Résolu Microsoft 365 Problème avec textbox et combobox

dubarre

XLDnaute Occasionnel
Supporter XLD
Bonsoir à tous je viens vers vous car j'ai un petit souci j'ai essayé ce code mais il ne veut pas fonctionner est-ce que quelqu'un pourrait m'expliquer d'une part pourquoi et d'autres pas savoir si il y a moyen de le contrer.

Je m'explique la text box reçois une date si elle est inférieure à la combo box alors elle s'efface.

Merci de votre aide


VB:
If Me.TextBox23.Value < Me.CbxBoursier.Value Then
Me.TextBox23.Value = ""
End If
 
Ce fil a été résolu! Aller à la solution…

job75

XLDnaute Barbatruc
Bonjour dubarre,

Il faut que les 2 valeurs soient reconnues comme des dates par VBA :
VB:
If Not IsDate(TextBox23) Or Not IsDate(CbxBoursier) Then TextBox23 = "" _
    Else If CDate(TextBox23) < CDate(CbxBoursier) Then TextBox23 = ""
A+
 
Ce message a été identifié comme étant une solution!

Dudu2

XLDnaute Impliqué
Bonsoir à tous,
Job, comment tu as compris que c'était des dates ? Tu es trop fort !

Edit: OK c'est écrit ! Je vois rien.
Mais ta réponse est excellente !
 

dubarre

XLDnaute Occasionnel
Supporter XLD
Bonsoir merci tout d'abord de vous pencher sur mon problème mais je pense qu'il y a un petit souci car quand je rentre le code que vous me proposez dans la text box je ne peux rentrer aucun chiffre peut-être il est quelque chose que je fais mal positionnements de votre code n'est pas au bon endroit pouvez-vous me dire s'il vous plaît.

VB:
Private Sub TextBox23_Change()
Me.TextBox22.Value = "X"
If Me.TextBox23 = "" Then
Me.TextBox22 = ""
End If

If Not IsDate(TextBox23) Or Not IsDate(CbxBoursier) Then TextBox23 = "" _
    Else If CDate(TextBox23) < CDate(CbxBoursier) Then TextBox23 = ""

'-------------------------------------------------------------------------
'Code permettant de mettre une date au format 00/00/0000 dans une textbox.
'-------------------------------------------------------------------------

Dim valeur As Byte
TextBox23.MaxLength = 10 'nb caractères maxi autorisé dans le textbox
valeur = Len(TextBox23)
If valeur = 2 Or valeur = 5 Then TextBox23 = TextBox23 & "/"

End Sub
 

dubarre

XLDnaute Occasionnel
Supporter XLD
Désolé encore de vous embêter j'essayer de faire ce que vous me proposez sauf qu'il y a un petit souci maintenant elle accepte les chiffres mais un seul si je tape plusieurs chiffres à la suite sauf qu'il ne met qu'un chiffre exemple si je tape zéro et trois le chiffre trois efface le zéro je vous mets le classeur

Cela se passe dans le userform2 dans la case date de décès je précise que les données sur ce classeur sont fictives en aucun cas elle représente la réalité.
 

Fichiers joints

job75

XLDnaute Barbatruc
La seule macro de la TextBox doit être la macro AfterUpdate, supprimez toutes les autres.
 
Ce message a été identifié comme étant une solution!

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
@job75
avec le afterupdate il ne peut pas formater avec les "/" automatiques
VB:
Private Sub TextBox23_AfterUpdate()
With TextBox23
If Len(.Value) < 10 And .Value <> "" Then MsgBox "date incomplete": .SetFocus: .SelStart = 0: .SelLength = 1
End With
End Sub

Private Sub TextBox23_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With TextBox23
        t = .Value
        Select Case KeyCode
        Case 96 To 105
            t = t & Chr(KeyCode - 48)
            If Len(t) = 2 Or Len(t) = 5 Then t = t & "/"
           .Value = t
           If Len(t) = 10 And Not IsDate(t) Then t = "": MsgBox "date invalide"
            If Len(t) = 10 Then If CDate(t) < CDate(CbxBoursier) Then t = "": MsgBox "date inferieur"
            KeyCode = 0
        Case 8: t = Left(t, Len(t) - 1): KeyCode = 0
        Case Else: KeyCode = 0
        End Select
        .Value = t
     TextBox22 = Array("", "X")(Abs(t <> ""))
End With
End Sub
le seul problème je n'arrive pas a faire revenir le carret (selstart)sur le textbox23 dans le after updtate
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas