Microsoft 365 Problème avec textbox et combobox

dubarre

XLDnaute Occasionnel
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
 

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+
 

dubarre

XLDnaute Occasionnel
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
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é.
 

Pièces jointes

  • Gestion_des_Artistes_date.xlsm
    237 KB · Affichages: 5

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
 

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 589
Membres
111 208
dernier inscrit
estalavista