Modification d'une date dans une textbox

Bonjour,

J'ai un fichier qui, pour une date et un fournisseur saisis, génère un code.

Or, j'aimerais que si l'on modifie via un userform la date ou le fournisseur, le code change lui aussi.

Seulement quand j'entre une date dans ma textbox date l'erreur d'exécution 13 : Incompatibilité de type apparait.

(quand je mets un / à la place d'un - par exemple, ou quand le mois est < 10...)

Voici mon code :

Private Sub TB_Date_Change()
If (Month(TB_Date) < 10) Then
        TB_Nouveaucode = UCase(Right(Year(TB_Date), 2) & "0" & Month(TB_Date) & "-" & TB_Fournisseur)
     Else
         TB_Nouveaucode= UCase(Right(Year(TB_Date), 2) & Month(TB_Date) & "-" & TB_Fournisseur)
End If
End Sub

Auriez-vous une solution pour éviter ce beug svp ?

Je pensais afficher un message d'erreur pour demander à l'utilisateur de mettre la date sous la forme dd-mm-yyyy par exemple (si c'est bien cette forme qu'exige la texte box..!), ou encore mieux, un code qui remplacerait le "/" par "-" ?

Je vous remercie par avance de votre aide !

Bonjour,

pour info une TextBox n'est rien d'autre qu'une série de caractère alphanumérique, en gros c'est du texte.

Après ce qui fait que le texte est considéré comme une date ou tout autre chose (entier, décimale etc) c'est la gestion qu'on en fait avec les fonction VBA.

Donc un petit test pour vérifier si le texte peut être interprété comme une date, si ce n'est pas le cas, on efface TB_Date,on lui donne le focus et on affiche un message d'erreur, sinon on crée le code alphanumérique qui correspond à l'année sur deux chiffre et le mois sur deux chiffres et le fournisseur :

If Not IsDate(TB_Date) Then
    MsgBox ("Veuillez entrez une date valide, merci")
    TB_Date.Value = ""
    TB_Date.SetFocus
    Exit Sub
End If
' on crée une variable date
Dim La_Date As Date
' on lui attribue le texte qui peut être considéré comme une date
La_Date = TB_Date
' une fois qu'on a vérifié que c'était bien un "format date"
' on crée le nouveau code
' l'instruction FORMAT de VBA permet de spécifier le format "texte" de sortie d'une valeur
' ici avec le double zéro on demande à VBA d'écrire le chiffre sur deux caractères donc mois janvier = 1 = 01 !
TB_Nouveaucode = Format(Year(La_Date), "00") & Format(Month(La_Date), "00") & "-" & TB_Fournisseur

ATTENTION ! pas testé !

Je ne suis pas très à 'aise avec ceci

@ bientôt

LouReeD

Merci LouReeD !

Je vais donc tester cela de ce pas.

Bonne journée

TB_Nouveaucode = Format(Right(Year(TB_Date), 2) & Format(Month(La_Date), "00") & "-" & TB_Fournisseur

Avec cette petite modification ça marche nickel !

Merci beaucoup.

Au temps pour moi....

TB_Nouveaucode = Format(Year(La_Date), "YY") & Format(Month(La_Date), "MM") & "-" & TB_Fournisseur

Voilà qui devrait être plus propre sans faire de Right etc...

@ bientôt

LouReeD

Rechercher des sujets similaires à "modification date textbox"