Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Aide sur mon projet

CmzxNéné

XLDnaute Nouveau
Bonjour,

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 "+" ...
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
 

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


 

Pierrot93

XLDnaute Barbatruc
Re : Aide sur mon projet

Bonjour,

Saisie ainsi "12/15/2010", vba interprete ta date comme étant le 15 décembre... tu peux également faire un test comme le proposait JNP pour l'heure...

bonne journée
@+
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…