Bonjour la communauté,
mise à part le fait de commencer les années à 1900 lors du clic sur le bouton, tout fonctionne bien
@LouReed,
cela provient du programme original qui détermine la date selon la cellule active lors de l'appel du UserForm, si la cellule active contient une valeur numérique.
mais c'est très facile à modifier.
il faut modifier la ligne suivante:
Me.ddj.Caption = IIf(ActiveCell = "", Date, ActiveCell) 'ActiveCell ou Date_initiale
sur cette macro:
Private Sub UserForm_Initialize()
Dim CaseJ As Object, i As Byte
AfficheTitleBarre Me.Caption, False 'lignes à masquer pour afficher le cadre du calendrier
Me.Height = Me.Height - 15 'lignes à masquer pour afficher le cadre du calendrier
Set CasesJour = New Collection
For i = 1 To 37
Set CaseJ = New Class_Cal
Set CaseJ.Jour = Me.Controls("J" & i)
CasesJour.Add CaseJ
Next
Me.ddj.Caption = IIf(ActiveCell = "", Date, ActiveCell) 'ActiveCell ou Date_initiale
Me.Cmbannule.Caption = " Fermer"
Me.Cmbannule.ControlTipText = "Fermer"
Call re_init
End Sub
Édit:
Il faut vraiment modifier cette ligne, car si celle-ci contient du texte cela bug l'appel du UserForm
aussi si la valeur de la cellule active est numérique mais dépasse la capacité pour une date valide il y a aussi un bug.
À noter/ la tranche de date valide se situe entre:
1900-03-01
9999-11-30
À noter/ pour la tranche de date
1900-01-01
1900-02-28
la date grisée sur le calendrier est décaler de - 1 jour, mais on comprend bien que la cause est que 1900 n'est pas considérée comme une année bis.
aussi quelque remarque sur ce fichier