Aide sur mon projet

CmzxNéné

XLDnaute Nouveau
Bonjour, :confused:

Je reviens vers vous car je bloque sur 2, 3 paramètres.
Vous avez en pièce jointe un USERFORM de test.

1) mon premier problème, qui est le plus important pour moi, est que je n'arrive pas à remplacer le signe "+" par une "," au moment du transfert de valeur vers la colonne "I" du TextBox TxtTerme.
Le "+" doit rester visible à la saisie dans l'USERFORM

2) comment, dans le TxtHeure, limiter la saisie des heures entre 00 et 24 et les minutes entre 00 et 59 ?
actuellement, si je saisie 36:00 il le prend en saisie et au transfert me met 12:00 (logique)

3) dernier point, le champ TxtDateNais, faire un contrôle pour que la date soit valide.
Si je saisi 1 dans cette TextBox, le transfert me donne 01/01/1900.

Je vous remercie de votre aide précieuse.
Salutations :)

CmzxNéné
 

Pièces jointes

  • Test DEV.zip
    32 KB · Affichages: 37

Pierrot93

XLDnaute Barbatruc
Re : Aide sur mon projet

Bonjour,

pour ta 1ère question, modifie dans la procédure "Sub CmdValider_Click" la ligne qui alimente la cellule comme suit :

Code:
Range("I" & num).Value = Replace(TxtTerme.Value, "+", ",")

bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Aide sur mon projet

Re,

pour le 3ème point, regarde le code ci-dessous permet la saisie d'une date comprise entre le 1er janvier 1950 et le 31 décembre 2050, plage à adapter ainsi que le nom de la "textbox" :

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1.Value) Then MsgBox "Date erronée !!!": Cancel = True: Exit Sub
If CDate(TextBox1.Value) < #1/1/1950# Or CDate(TextBox1.Value) > #12/31/2050# Then _
    MsgBox "Date erronée !!!": Cancel = True
End Sub

@+
 

JNP

XLDnaute Barbatruc
Re : Aide sur mon projet

Bonjour le fil :),
Salut Pierrot ;).
Pour le 1, je rajouterais une conversion pour ne pas stocker le résultat en texte
Code:
Range("I" & num).Value = CDbl(Replace(TxtTerme.Value, "+", ","))
mais je ne comprends pas pourquoi ne pas saisir en automatique la "," plutôt que le "+" :confused:...
Pour le 2, quelque chose du type
Code:
Private Sub TxtHeure_Change()
On Error Resume Next
Dim Texte As String
Texte = TxtHeure.Text
Select Case Len(Texte)
Case 2 ', 5, 8, 11
If CInt(Texte) > 23 Then
Texte = ""
Else
Texte = Texte & ":"
End If
Case 5
If CInt(Right(Texte, 2)) > 59 Then
Texte = Left(Texte, 3)
End If
End Select
TxtHeure.Text = Texte
On Error GoTo 0
End Sub
Bonne journée :cool:
 

CmzxNéné

XLDnaute Nouveau
Re : Aide sur mon projet

Re Pierrot,

C'est presque parfait !
Mais il reste un souci : si je saisi 15/12/2010 pas de pb !
en revanche, si je me trompe et que je saisi 12/15/2010, il prend quand même et me copie la valeur 15/12/2010 dans la cellule prévue.

Comment faire un contrôle sur le jour et le mois ?
Merci de ton aide
Cdt


Re,

pour le 3ème point, regarde le code ci-dessous permet la saisie d'une date comprise entre le 1er janvier 1950 et le 31 décembre 2050, plage à adapter ainsi que le nom de la "textbox" :

Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1.Value) Then MsgBox "Date erronée !!!": Cancel = True: Exit Sub
If CDate(TextBox1.Value) < #1/1/1950# Or CDate(TextBox1.Value) > #12/31/2050# Then _
    MsgBox "Date erronée !!!": Cancel = True
End Sub

@+
 

CmzxNéné

XLDnaute Nouveau
Re : Aide sur mon projet

Bonjour Pierrot et JNP,

C'est tout bon !
J'ai suivi vos propositions et le résultat me plait parfaitement.
Merci encore pour votre aide et à bientôt pour d'éventuelles autres questions.
Cordialement, ;) ;)

CmzxNéné
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane