Formulaire avec obligation de saise de date au format jj/mm/aaaa

Skyna

XLDnaute Occasionnel
Bonjour à vous tous,

Mon problème est le suivant.
Dans un j'ai un formulaire nommé TBdtedeb dans lequel j'aimerais bloquer la saisie à un seul et unique format jj/mm/aaaa, et que si ce format n'est pas respecté qu'un message "Format incorrect" apparaisse, et si le format est correct c'est alerte est caduque.
Voici le code que j'ai tenté de faire mais qui bloque à chaque tentative de renseignement de donnée..

Private Sub TBdtedeb_Change()
Dim Valeur As Byte
TBdtedeb.MaxLength = 10 'nb caracteres maxi dans textbox
Valeur = Len(TBdtedeb)
If Valeur = 2 Or Valeur = 5 Then TBdtedeb = TBdtedeb & "/"
If Not IsDate(TBdtedeb.Value) Then
MsgBox "Format incorrect"
TBdtedeb = ""
Exit Sub
End If
End Sub

Merci d'avance pour votre aide.
 

Skyna

XLDnaute Occasionnel
Re : Formulaire avec obligation de saise de date au format jj/mm/aaaa

Voilà le fichier.
Dans la colonne I les dates s'affichent mais pour qu'elles soient prises en compte, je suis obligé de positionner le curseur de la souris à la fin de la date de de cliquer sur "entrée" pour qu'elle soit prise en compte..
Pour les pourcentage je n'y suis pas encore parvenu.
Merci pour votre aide.
 

Pièces jointes

  • Suivi_cdd_test1.xlsm
    220.9 KB · Affichages: 40

CHALET53

XLDnaute Barbatruc
Re : Formulaire avec obligation de saise de date au format jj/mm/aaaa

Bonjour,

Je n'ai pas le problème chez moi : le format est bon et immédiat

Le cas échéant, essaie ceci derrière la ligne:

.Cells(i, 9) = TBdtedeb
.Cells(i, 9).Select
Selection.NumberFormat = "dd-mm-yyyy"
 

Pierrot93

XLDnaute Barbatruc
Re : Formulaire avec obligation de saise de date au format jj/mm/aaaa

Bonjour à tous,

pas tout suivi, mais peut être renvoyer la valeur de la "textbox" en utilisant la fonction "CDate" :

Code:
.Cells(i, 9) = CDate(TBdtedeb)

bonne journée
@+
 

Skyna

XLDnaute Occasionnel
Re : Formulaire avec obligation de saise de date au format jj/mm/aaaa

Le format est bon, mais pour que les formules qui sont dans les colonnes "mois" fonctionnennt il faut que je valide manuellement la date de début. Sans cela la répartition mensuelle ne se fait pas..
 

Skyna

XLDnaute Occasionnel
Re : Formulaire avec obligation de saise de date au format jj/mm/aaaa

Oui j'ai testé mais j'ai une erreur de compilation pour la parenthèse de cdate, mais j'avoue également ne pas trop savoir où placer cette ligne...
 

Pierrot93

XLDnaute Barbatruc
Re : Formulaire avec obligation de saise de date au format jj/mm/aaaa

Re,

Oui j'ai testé mais j'ai une erreur de compilation pour la parenthèse de cdate, mais j'avoue également ne pas trop savoir où placer cette ligne...
quand tu envoie la valeur de ta textybox vers une cellule de la feuille de calcul :
Code:
Range("A1").Value = CDate(TextBox1)
code à utiliser dans le module de l'usf où se trouve le textbox....
 
G

Guest

Guest
Re : Formulaire avec obligation de saise de date au format jj/mm/aaaa

Bonjour,

Si la colonne est déjà en format pourcentage:

Code:
        .Cells(i, 12) = CDbl(Replace(TBpourctrav, ".", Application.DecimalSeparator)) / 100

CDBL: convertit la valeur String en Type Double
Replace: remplacera le point par le séparateur décimal définit dans les options, sinon CDBL plante
/100 divise le résultat par 100

A+
 

Discussions similaires

Réponses
3
Affichages
2 K
Réponses
1
Affichages
920

Statistiques des forums

Discussions
312 332
Messages
2 087 365
Membres
103 528
dernier inscrit
maro