créer un calendrier dans un UserForm

C@thy

XLDnaute Barbatruc
Bonjour le forum,

Je voudrais créer un calendrier selon le modèle ci-joint, (mais avec les jours de la semaine en haut, en colonnes,
les flèches pour changer de mois en haut et d'année en bas)
mais dans un USF

Comment puis-je créer les flèches pour changer de mois et d'année, et initialiser les valeurs???
(j'ai essayé avec une scrollbar ou un spinbutton, mais je ne sais pas comment afficher le mois en cours, l'année en cours et faire la navigation sur d'autres mois ou années:confused:)

Merci à vous, si vous avez des idées sur la question ou un exemple à me fournir.

Edit : j'ai mis 2010 car il doit être compatible 2010, mais en réalité, pour l'instant je n'ai que 2003!!

Bises et bonne journée,

C@thy
 

Pièces jointes

  • AffichePetitCalendrier.xls
    41 KB · Affichages: 1 118
Dernière édition:

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : créer un calendrier dans un UserForm

Bonjour Le Forum, Le FIl,
Bonjour Roland_M et merci,
Bonjour Modeste geedee et merci,
Vous me donnez tous les deux du pain sur la planche pour ce week-end.

Modeste, ton application est déjà en place dans ma gestion de comptes bancaires de la famille. Il fonctionne à merveille (fonctionnement France) et j'en suis satisfait.
Ton dernier fichier est impressionnant mais a du mal à fonctionner sur Excel2003 ; je vais l'étudier toutefois.

Roland, je viens de placer tes lignes de code dans l'userForm de 11 h 30.
Ça fonctionne bien et je le maintiens dans trois applications en progression car parfait.
Toutefois une rectification éventuelle s'avèrerait nécessaire pour ne pas voir, sur 2012 par exemple, les vendredis suivants en vert aussi :
3 février, 2 mars, 4 avril, notre fameux jour en cours qui seul devrait vert, 3 août et 2 novembre.

J'ai essayé avec ceci, mais ce n'est pas bon :
'If l + n - 1 = Date Then Controls("CommandButton" & n).SetFocus 'ESSAI DE COLORATION DU BUTTON d'Aujourdhui()
'Par Roland_M #73 sur Créer un calendrier dans un UserForm de C@thy BipBip du 15/5/12
If l + n - 1 = Date Then
' If TextBox2 = Month(Now) Then 'ou encore Month(Date) Controls("CommandButton" & n).SetFocus
Controls("CommandButton" & n).BackColor = &H2AC19A
' End Iftes lignes de codes dans l’userForm

Pendant que j'écris, je m'aperçois que Pierre -Jean a réagi. Merci à lui : je vais étudier sa réponse.

Merci à tous,
Webperegrino
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Bonjour le Fil
Bonjour le Forum

peut être peut on résoudre le problème du Jour en cours
en remplaçant la procédure
Code:
If l + n - 1 = Date Then
     Controls("CommandButton" & n).BackColor = &H2AC19A
End If
par
la couleur du Bouton sera Verte si Date du Jour sinon elle sera Grise

Code:
Controls("CommandButton" & n).BackColor = IIf(n = Date, &H2AC19A, &H8000000F)

non teste
Bonne fin de Journée
Amicalement
Jean Marie
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : créer un calendrier dans un UserForm

Le Forum, Le Fil,
Bien Pierre-Jean pour la correction sur fichier du #75 !
J'adopte !
Toutefois je ne vois pas le 1er juin (le "button" aujourd'hui) se mettre en coloration verte.
Pour les amateurs de ce fichier très intéressant : n'oubliez pas de corriger ceci pour ajouter la couleur sur le jour de Pâques :
Dim feries (11) (et non 10)...feries(8) = Paques(Year(Ladate))
... For n = 0 To 11 (et non 10)
Encore merci Pierre-Jean pour l'intérât que vous avez aussi porté à ma modeste progression sur ce Forum sérieux et riche,
Webperegrino
 

ChTi160

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Re Bonjour
voila ce que j'ai modifie dans la procédure Affiche pour avoir la date du jour en Vert
Code:
Sub affiche()
With UserForm1
l = lundi(Format(CDate("01/" & .TextBox2 & "/" & .TextBox1), "m"), .TextBox1 * 1)
    For n = 1 To 38
            If Format(l + n - 1, "mmmm") <> .TextBox2 Then
                      .Controls("CommandButton" & n).Visible = False
                    Else
                      .Controls("CommandButton" & n).Caption = Format(l + n - 1, "d")
                      .Controls("CommandButton" & n).Visible = True
                      .Controls("CommandButton" & n).BackColor = IIf(CDate(l + n - 1) <> Date, &H8000000F, vbGreen)
              End If
              If est_ferie(l + n - 1) Then
                   .Controls("CommandButton" & n).BackColor = &H80C0FF
              End If
             Next n
                      .Repaint
End With
End Sub

Reste à savoir si le férié doit l'emporter sur la date du jour Lol (simple a modifier)

bonne fin de journée
Amicalement
Jean marie
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : créer un calendrier dans un UserForm

Le Forum, Le FIl,
Bonjour ChTi160,
J'ai essayé à l'instant ta proposition : pas plus de résultat pour du vert sur le bouton correspondant à aujourd'hui.
Je continue aussi à chercher de mon côté comment dans cette application la ligne macro du button vert du fichier de Roland_M #73 pourrait être transposé.
Webperegrino
 

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : créer un calendrier dans un UserForm

Le Forum, Le FIl,
Re-Bonjour ChTi160,
Trop rapide ! (#79)
C'est parfait, excellent !
Mission aboutie pour vous tous.
Merci pour votre rapidité.

Ps (secondaire toutefois) : fragilité du dérouleur flèche de gauche pour mois de juin : on ne passe pas à avril !
Il faut cliquer sur flèche de droite (en revient alors à février (?) et utilisons ensuite librement les deux flèches pour progresser logiquement et chronlogiquement dans les deux sens pour les mois).

Webperegrino
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Re

Voila avec corrections pour avoir la date du jour en vert et le dimanche de Paques en férié
Le bug du spinbutton Mois avait deja été corrigé
 

Pièces jointes

  • Calendrier_cousu_main(1juin12).xls
    92.5 KB · Affichages: 118
  • Calendrier_cousu_main(1juin12).xls
    92.5 KB · Affichages: 118
  • Calendrier_cousu_main(1juin12).xls
    92.5 KB · Affichages: 117

Webperegrino

XLDnaute Impliqué
Supporter XLD
Re : créer un calendrier dans un UserForm

Bonjour Le Forum, Le FIl,
Bonjour PierreJean,
Et merci pour cette dernière mouture parfaite.
Je n'ai plus vous féliciter, vous tous.
Il n'y a plus rien à ajouter (dans mon application, j'ai quand même ajouté le dimanche 9 avril 2012 en férié pour avoir aussi la coloration sur ce bouton).
Merci, Merci, Merci
Webperegrino
 

C@thy

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Bonjour à tous,

vous êtes tous absolument parfaits!! (et surtout Pierre-Jean qui est à l'origine du calendrier et de toutes ses améliorations).

...et en plus la date du jour en vert, c'est très écolo ;D

Chacun a apporté sa variante du désormais célèbre calendrier de Pierre-Jean, et c'est très réussi.

Merci à vous tous, c'est du très beau boulot!!!

Bises

C@thy
 
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Un autre axe d'amélioration aussi (sinon c'est pas drôle), le fait de pouvoir passer de décembre 2012 à janvier 2013 en incrémentant d'un mois uniquement :)

ou l'inverse... en utilisant la flèche gauche pour décrémenter les mois et passer de janvier 2013 à décembre 2012...

mais c'est juste pour embêter Pierre-Jean!!!:p

Comme aurait dit Ti : "Ah les femmes!!! Elles en veulent toujours plus!!!":rolleyes:

Bises

C@thy
 

C@thy

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Une question, Modeste geedee,
est-ce que cette instruction fonctionne sous 2003???

Code:
L_Couleur = "&H" & Application.Dec2Hex(L_Choix.BackColor, 6)

Bises et bonne journée

C@thy
 

Modeste geedee

XLDnaute Barbatruc
Re : créer un calendrier dans un UserForm

Bonsour®
Une question, Modeste geedee,
est-ce que cette instruction fonctionne sous 2003???

Code:
L_Couleur = "&H" & Application.Dec2Hex(L_Choix.BackColor, 6)
C@thy

je ne posséde plus Excel 2003...:(

mais selon :
support.microsoft.com/kb/282847/fr
Certaines fonctionnalités Excel ne sont pas disponibles lorsque VBA est désactivé
il faut que les macros complémentaire de l'utilitaire d'analyse VBA soient activées.
 

Discussions similaires

Réponses
9
Affichages
384
Réponses
1
Affichages
134

Statistiques des forums

Discussions
312 088
Messages
2 085 203
Membres
102 818
dernier inscrit
NeoMaint