Comparaison date entre deux monthview

Bonjour,

Dans un userform, j'ai deux monthview pour saisir des dates de déplacement,

J'aimerais pouvoir comparer les dates cliquées afin d'afficher une msgbox d'erreur si la date de retour (monthview2) est inférieure à la date de départ (monthview1).

Pouvez-vous m'aider pour le code vba ?

Merci de votre aide

bonjour

le plus simple quant tu valide MonthView1 mettre

MonthView2.MinDate = MonthView1

A+

Maurice

Bonjour Maurice et merci pour ta réponse,

Effectivement, cela fonctionne mais lorsque je modifie la date de retour pour qu'elle soit supérieure à la date de départ, il continue d'afficher le message et je ne comprends pas pourquoi,

Voilà mon code :

If Not MonthView2.MinDate = MonthView1 Then

MsgBox "La date de retour est antérieure à la date de départ !"

Exit Sub

End If

Merci de ton aide

Re-bonjour,

J'ai également un autre souci avec mes deux monthviews.

Je les ai paramétrés pour qu'ils affichent deux mois à l'ouverture.

J'aimerais que le monthview1 affiche le mois par rapport à la date du jour + le mois suivant

J'ai saisi le code suivant :

Private Sub Userform1_Initialize()

MonthView1.Value = Date

MonthView2.Value = Date

End Sub

mais la date enregistrée dans le paramètre "value" du monthview est la date de création et, à moins de la modifier manuellement, elle ne change pas en fonction de la date du jour

Ensuite, j'aimerais que le monthview2 affiche les mois en fonction de la date cliquée sur le monthview1

Je m'explique : si je clique sur le 01/11 dans le monthview1, j'aimerais que le monthview2 se cale sur cette date au moment du clic (et non pas au moment de la validation) et affiche les mois de novembre et décembre. Est-ce possible ?

Merci d'avance pour votre aide

bonjour

a tester

<code basic>

Private Sub UserForm_Initialize()

With MonthView1

.MaxDate = DateSerial(Year(Now), Month(Date) + 1, Day(Now))

.MinDate = DateSerial(Year(Now), Month(Now) - 3, Day(Now))

End With

End Sub

</code>

A+

Maurice

Maurice,

J'ai copié ton code mais rien de changé,

Ce code est censé faire quoi ?

Merci

Myriam

Bonsoir

.MaxDate = DateSerial(Year(Now), Month(Date) + 1, Day(Now)) = date du jour + 1 mois

.MinDate = DateSerial(Year(Now), Month(Now) - 3, Day(Now)) = date du jour

A+

Maurice

Bonjour,

Le code ne fonctionne pas ; en fait, je ne comprends pas pourquoi les Monthview conservent la date de création ou la date entrée manuellement. Ils ne se mettent pas à jour avec la date du jour malgré la commande en vba

MonthView1.Value = Date

MonthView2.Value = Date

Pour l'affichage, ils affichent bien deux mois, mais à partir de la date entrée manuellement dans les paramètres des Monthview.

D'autre part, quelle commande utiliser pour que le 2e monthview affiche les mêmes mois que le 1er dès que l'on a cliqué sur une date du premier monthview ?

Merci de votre aide,

Myriam

bonjour

donne un model de ton fichier pour voir ou sa pèche

A+

Maurice

Maurice,

Ci-joint mon fichier.

Je me doute bien qu'il peut être grandement simplifié mais je débute en vba,

Merci encore de ton aide,

Myriam

23test2.xlsm (530.16 Ko)

bonjour

déjà tu a une faute dans Private Sub Userform1_Initialize()

pour tes MonthView1 la je bloque car jais pas ca sur mon ordi

j'ais fait un userform4 regard si ca te convient

A+

Maurice

7test2-3.xlsm (401.36 Ko)

Maurice,

J'ai corrigé la faute dans Initialize,

j'ai ensuite mis les codes de ton usf4 aux bons endroits sur mon usf1 mais le monthview1 bloque sur juillet, impossible de sélectionner aout ou les mois suivants

(ça fait pareil sur ton fichier)

A +

Myriam

bonsoir

tu enlève le ' .MaxDate = DateSerial(Year(Now), Month(Date) + 1, Day(Now))

ou mettre +10

et regarde bien

A+

Maurice

Bonjour Maurice,

Super, ça fonctionne parfaitement et c'est exactement ce que je voulais !

Merci beaucoup,

Le seul petit hic restant est que la value de mes monthview se met bien à jour dans le calendrier mais pas dans les paramètres des monthviews ; du coup, comme la value est en juin, ils affichent les mois de juin et juillet sur le calendrier alors qu'ils devraient afficher juillet et août. Je ne comprends pas pourquoi.

A +

Myriam

Bonjour

dur dur

A+

Maurice

Range("B9").Value = CDate(TextBox1.Value)   'MonthView1
Range("B10").Value = CDate(TextBox2.Value)   'MonthView2

Maurice,

Snif, j'ai saisi les codes proposés mais ça ne change rien.. tant pis, vais devoir modifier la value des monthview manuellement à chaque changement de mois pour que les bons mois soient affichés. Bizarre quand même.

Sans vouloir abuser, juste une dernière petite chose, j'aimerais qu'à la fin de la copie de ma trame, la feuille activée soit celle qui vient d'être créée. Ca marchait bien avant et maintenant, il revient sur la feuille trame.

Aurais-tu le code pour cela et surtout où le positionner pour que ça fonctionne ?

Promis, après je ne t'embête plus

Myriam

Re

regarde a la fin de validation

' Sheets(RetourFeuille).Activate

RetourFeuille = Trame HI

A+

Maurice

Maurice,

C'est bon, j'ai supprimé le retourfeuille et ça marche !

Merci beaucoup pour ton aide,

Myriam

Bonsoir

une dernière modife Combobox & KeyPress

a toi de voir

A+

Maurice

10test2-3.xlsm (421.74 Ko)
Rechercher des sujets similaires à "comparaison date entre deux monthview"