Contrôle dates formulaire.

barbin

XLDnaute Junior
Bonsoir à tous,

Je recherche un code qui me permettrait de controler les dates de mon formulaire.
Trois périodes de saisie, les dates doivent être entre la date de début et de fin d'exercice.
Il ne peut qu'y avoir qu'une seule période de saisie ou deux.
C'est là, que je bloc, car si la TextBox est vide, il me dit que la date est incorrecte.
Merci de l’intérêt que vous porterez à ma demande.
cordialement.
 

barbin

XLDnaute Junior
Ok, j'ai compris. Le fichier est un peu gros, mais je le joins quand même.
1) Cliquer sur le bouton jaune "congés payés"
2) cliquer ensuite sur le premier bouton "Nbre de jour".
Et c'est là mon problème. J'ai réussi à faire = la date doit Etre comprise entre la date début exercice et la date fin d'exercice. Mais lorsqu'il n'a pas de date dans les deux autres périodes, je ne peux pas fermer le formulaire.
J'ai utilisé aussi : quand TextBox change, mais si je saisie une date erronée comme 01/02/200017, le formulaire ne s'ouvre plus.

Merci de ton aide.
cordialement.
 

Pièces jointes

  • Tony-paie-2018-V60.xlsm
    1 MB · Affichages: 21

Staple1600

XLDnaute Barbatruc
Re

Il s'agissait juste de t'informer.
Désormais tu l'es. ;)

Donc tu peux aller voir et commenter la dernière réponse de 00 dans l'autre fil.

Ensuite tu reviens dans celui-ci (avant de revenir tu peux aussi faire des recherches dans les archives du forum pour ton histoire de TextBox et de date)
 

barbin

XLDnaute Junior
bonsoir à tous.
Pour mon controle des date j'ai mis ce code :

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim DateDebutex As Date
Dim DateFinEx As Date
mafeuille = ActiveSheet.Name
With mafeuille
DateDebutex = Cells(35, 18)
DateFinEx = Cells(35, 22)
If TextBox2.Value < DateDebutex Then
MsgBox "La date de début ne peut être inférieure au mois du bulletin": TextBox2.SetFocus: Exit Sub
ElseIf TextBox2.Value > DateFinEx Then
MsgBox "La date de fin ne peut être supérieure au mois du bulletin": TextBox2.SetFocus: Exit Sub
Cancel = True
End If
End With
End Sub

1) mais je perds le focus dans la Textbox2.
2) et si je clique sur le bouton Go, ça ne l'empêche pas de valider une date comme 01/02/200017, et du coup j'ai une erreur lors du chargement de mon formulaire.

Quelqu'un aurait il une idée ?
Cordialement
 

barbin

XLDnaute Junior
J'ai pu résoudre les deux points en modifiant le code comme ceci :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim DateDebutex As Date
Dim DateFinEx As Date
mafeuille = ActiveSheet.Name
With mafeuille
On Error Resume Next
DateDebutex = Cells(35, 18)
DateFinEx = Cells(35, 22)
If TextBox1.Value < DateDebutex Then
Cancel = True
Label1.ForeColor = RGB(255, 0, 0)
MsgBox "La date de début ne peut être inférieure au mois du bulletin": TextBox1.SetFocus: Exit Sub
ElseIf TextBox1.Value > DateFinEx Then
Cancel = True
Label1.ForeColor = RGB(255, 0, 0)
MsgBox "La date de fin ne peut être supérieure au mois du bulletin": TextBox1.SetFocus: Exit Sub
SendKeys "{tab}", False
End If
End With
End Sub

merci barbin
 

ChTi160

XLDnaute Barbatruc
Bonsoir barbin
Bonsoir le Fil , le Forum

je ne suis pas sur d'avoir tout compris .
Mais ne pourrait on pas remplir les Textbox Dates via Un calendrier ?
ou forcer la saisie de Date dans ces TextBox ?
Pour éviter l'enregistrement de Dates non conformes .
Bonne fin de Soirée
Amicalement
jean marie
 

barbin

XLDnaute Junior
Salut Chti160,
C'est une bonne remarque.
Mais ma plage de saisie ne concerne qu'un seul mois. Je ne sais pas si, il est préférable d'utiliser le calendrier.
De plus, je ne sais pas si j'ai le calendrier.
Mon code à l'air de fonctionner correctement.
Merci à toi
 

Discussions similaires

Réponses
17
Affichages
790

Statistiques des forums

Discussions
312 499
Messages
2 088 999
Membres
104 001
dernier inscrit
dessinbecm