Problème de Date dans une TextBox

Excel-lent

XLDnaute Barbatruc
Bonjour à tous le monde,
(re-bonjour aux anciens qui me reconnaitrons)

Cela faisait longtemps que je ne venais plus ce forum, que je vivais sur mes acquis. Mais lasse de faire du sur-place, je me lance dans un nouveau chalenge.

Pour progresser, j'aurais besoin de votre aide.

Comme vous pouvez le voir ci-joint, j'ai une date en A1 sur l'onglet "page d'accueil".

Lorsque je clic sur le bouton, une UserForm s'ouvre. L'utilisateur doit saisir :
-> une date de début de période
-> une date de fin de période

Ces deux dates doivent absolument être dans le mois inscrit en A1, ou le mois précédent.

Bref, si en A1 la date est le 01/10/2013. L'utilisateur doit pouvoir saisir une date de début et de fin incluse entre le 01/09/2013 et le 31/10/2013

Mais voilà, ma macro ne fonctionne pas :-(

Je me suis aidé des nombreux fils traitant de ce sujet, mais malgré plusieurs heures de recherche, je ne parviens pas à trouver la solution.

Quelqu'un peut m'aider?

En effet, je le reconnait, actuellement ma macro ne gère pas le cas de figure suivant :
Si la date en A1 est : 01/01/2014

L'utilisateur doit pouvoir saisir comme date de début et de fin une date incluse entre le 01/12/2013 et le 31/01/2014

Avez-vous une idée concernant mon bug?

Merci d'avance pour le temps que vous passerez sur mon cas.

A bientôt
Excel-lent

Précision :
Si cela peut vous aider, en A1 je mettrais tout le temps des dates se trouvant le premier jour du mois.

01/10/2013
01/11/2013
01/12/2013
01/01/2014
...
01/10/2014
...
 

Pièces jointes

  • Pb date.xlsm
    26.3 KB · Affichages: 47
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Problème de Date dans une TextBox

En adaptant mon pb sur un fichier exemple, je constate que je me suis trompé :

Code:
       With Sheets("Page d'accueil")
           ' Test si la date de fin est bien supérieur ou égale à la date de début
           If CDate(TextBox3.Value) >= CDate(TextBox2.Value) Then MsgBox ("Date de fin inférieur à la date de début!")
           ' Test si le mois de la "date début" saisie est bien égale au mois inscrit en A1 ou égale au mois antérieur
           If Month(CDate(TextBox2.Value)) <> Month(.[A1]) Or Month(CDate(TextBox2.Value)) - 1 <> Month(.[A1]) Then
                    MsgBox ("Le mois de la date de Début est erronée")
                    Exit Sub
           End If
           ' Test si le mois de la "date fin" saisie est bien égale au mois inscrit en A1 ou égale au mois antérieur
           If Month(CDate(TextBox3.Value)) <> Month(.[A1]) Or Month(CDate(TextBox3.Value)) + 1 <> Month(.[A1]) Then
              MsgBox ("Le mois de la date de Fin est erronée")
              Exit Sub
           End If
           ' Test si l'année de la "date début" et "date fin" est bien égale à l'année saisie en A1
           If Year(CDate(TextBox2.Value)) <> Year(.[A1]) Or Year(CDate(TextBox3.Value)) <> Year(.[A1]) Then
              MsgBox ("L'année de la date de Début et/ou Fin est erronée")
              Exit Sub
           End If
       End With

If CDate(TextBox3.Value) >= CDate(TextBox2.Value) ...

Et non pas :
If CDate(TextBox3.Value) <= CDate(TextBox2.Value)...
Comme j'ai mis dans la pièce jointe tout à l'heure

PS : comme vous constatez, pendant que vous travaillez sur mon soucis, de mon côté j'essaye aussi de trouver
 

Pierrot93

XLDnaute Barbatruc
Re : Problème de Date dans une TextBox

Bonjour,

essaye peut être ceci :
Code:
Dim d As Date
d = Range("A1").Value
If CDate(TextBox2) < DateSerial(Year(d), Month(d) - 1, 1) Or CDate(TextBox2) > _
    DateSerial(Year(d), Month(d) + 1, 0) Then MsgBox "hors bornes"

bonne journée
@+
 

Discussions similaires

Réponses
11
Affichages
174

Statistiques des forums

Discussions
312 078
Messages
2 085 112
Membres
102 783
dernier inscrit
Basoje