Calendrier VBA dynamique (palette de couleur d'évènements)

Provence Vintage

XLDnaute Occasionnel
Bonjour à toutes et tous,

Après avoir cherché pendant des mois ce type de développement pour mon outil, sur le forum, j'ai enfin trouvé une présentation et du code adaptable à ce que je souhaite mettre en place.:)
cf Editeur: Pascal Liberty

Mais il me faut encore faire bien des modifs...:rolleyes:


Mon USF consiste

1°) à faire apparaitre Mois par Mois un calendrier:

un ComBo pour sélection de l'année, un ComBo pour sélection du mois;
des ToggleButton pour les jours!

2°) a sélectionner rapidement des dates et leur attribuer une couleur spécifique en fonction de 6 différents types d'évènements (on pourrait en prévoir moins ou plus, pour ma part, ce quota me va bien!)

6 CheckBox (pour un évènement et une couleur associée)
pour les ToggleButtons clickés et couplés à une CheckBox cochée, la couleur de police change et prend la couleur de l'évènement désiré.

Mes questions!

Ce que je souhaite développer à partir de mon fichier actuel

1°) Après Modifications mensuelles (ou pas) en terme d'évènements, (et donc couleur de police des dates en adéquation avec les évènements sélectionnés), enregistrer les dates en colonne A, les jours en colonne B
exemple: 01/01/2010 en A1 (avec la couleur référante); "vendredi" en B1; 02/01/2010 en A2 (avec la couleur référante); "samedi" en B2 ...

2°) Si le mois a déjà été enregistré, rappeler les données enregistrées pour soit les consulter, soit les modifier.

3°) Améliorer mon code par rapport à l'adéquation entre date sélectionnées et évènements, si celà est faisable

Je prévois par la suite

1°) de consulter cet USF avec également le rappel du mois correspondant à l'année antérieure pour effectuer des comparaisons

on pourrait à ce titre envisager une saisie au trimestre dès le départ, mais bon...

2°) de consulter ce calendrier sous une forme semblable avec sous chaque date:

la possibilité de saisir jusque 8 tarifs différents dans des TextBox enregistrer, modifier ces données à guise!
exemple pour le 01/01/2010:
en colonne A: date, en colonne B: jour, en colonne C: 1er tarif, en colonne D: 2ème tarif.....

vous trouverez ci-joint le fichier correspondant
je tiens dors et déjà à vous remercier pour votre aide très précieuse, vos bouts de codes, qui me permettront de continuer à progresser dans la construction de mon outil!

Bonne soirée à toutes et tous

 
Dernière édition:

Provence Vintage

XLDnaute Occasionnel
Re : Calendrier VBA dynamique (palette de couleur d'évènements)

Au delà de tous ces éléments ... quelle est ta première question précise ???


Bonsoir James et merci d'avoir pris le temps de lire.
ma première question précise:

Ce que je souhaite développer à partir de mon fichier actuel

1°) Après Modifications mensuelles (ou pas) en terme d'évènements, (et donc couleur de police des dates en adéquation avec les évènements sélectionnés), enregistrer les dates en colonne A, les jours en colonne B
exemple: 01/01/2010 en A1 (avec la couleur référante); "vendredi" en B1; 02/01/2010 en A2 (avec la couleur référante); "samedi" en B2 ...

....
Merci à toi et vous tous
 

Provence Vintage

XLDnaute Occasionnel
Re : Calendrier VBA dynamique (palette de couleur d'évènements)

Bonjour Banzai, James, le Fil,

Pour le commandButton, oui en effet, je cherchais à faire un code correct de mon côté,
Banzai y a répondu, oui, on est sur la bonne voie, je teste et reviens
merci à toi
 

Provence Vintage

XLDnaute Occasionnel
Re : Calendrier VBA dynamique (palette de couleur d'évènements)

Banzai, le fil

je l'ai trouvé, en faisant comme ceci:

#Private Sub ButtonVal_Click()
Dim a As Range
Dim Lg As Integer
Dim coul
coul = DEFCAL(i).ForeColor
Lg = Recherche
If Lg = 0 Then
Lg = Range("A65536").End(xlUp).Row
End If
If Lg > 1 Then Lg = Lg + 1
For i = 0 To 36
If DEFCAL(i).Visible = True Then
With Cells(Lg, 1)
.Value = CDate(Val(DEFCAL(i).Caption) & "/" & _
ComboBox2.ListIndex + 1 & "/" & ComboBox1.Value)
.Font.Color = DEFCAL(i).ForeColor
End With
With Cells(Lg, 2)
.NumberFormat = "dddd"
.Value = Cells(Lg, 1).Value
End With
Lg = Lg + 1
End If
Next i
End Sub#

je continu les autres Test et revient
 

Provence Vintage

XLDnaute Occasionnel
Re : Calendrier VBA dynamique (palette de couleur d'évènements)

Banzai, le Fil,

Soucis, quand on a enregistré un mois, lorsqu'on réinitialise l'USF, comment faire prendre aux toggleButtons, les bonnes couleurs de police enregistrée en col A sur la feuille pour:
1°) visualiser les évènements correctement
2°) les modifier si besoin!

là je patauge...
 

Provence Vintage

XLDnaute Occasionnel
Re : Calendrier VBA dynamique (palette de couleur d'évènements)

Banzai, le Fil,

Bon j'ai trouvé pour initialiser correctement sur un enregistrement mensuel comme ceci: (dans l'exemple: "janvier")
#Sub Informe(Ligne As Integer)
If Ligne = 0 Then Exit Sub
For i = 0 To 36
If DEFCAL(i).Visible = True Then
DEFCAL(i).ForeColor = Cells(Ligne, 1).Font.Color ' changer a la place de Interior.color
Ligne = Ligne + 1
End If
Next i
End Sub#

Par contre, si en ComboBox2 on choisit le mois de "février",
les Toggle ne prennent pas la couleur de police noir partout sauf sur les dimanches,
ils gardent en mémoire le mois précédant...
ce qui revient à dire que sur la recherche, si pas d'enregistrement pour le mois de février, la lecture ne se fait pas!
je comprends pas!
 

Banzai64

XLDnaute Accro
Re : Calendrier VBA dynamique (palette de couleur d'évènements)

Bonjour

Rajoutes la ligne en rouge

Code:
Private Sub ComboBox1_Change()
ComboBox2_Change
End Sub

Private Sub ComboBox2_Change()
Dim D1, D2, az, jcal As Date
D1 = CDate("1/" & ComboBox2.Value & "/" & ComboBox1.Value)
D2 = DateAdd("m", 1, D1) - 1
az = Weekday(D1, 2)
For i = 0 To 36
DEFCAL(i).Visible = False
DEFCAL(i) = False
DEFCAL(i).Tag = ""
Next i
For jcal = D1 To D2
  [COLOR="Red"]DEFCAL(az + Day(jcal) - 2).ForeColor = IIf(Weekday(jcal, vbMonday) = 7, RGB(255, 0, 0), RGB(0, 0, 0))[/COLOR]
  DEFCAL(az + Day(jcal) - 2).Visible = True
  DEFCAL(az + Day(jcal) - 2).Caption = Format(jcal, "d")
  DEFCAL(az + Day(jcal) - 2).Tag = jcal
Next jcal
  Informe Recherche
End Sub
 

Provence Vintage

XLDnaute Occasionnel
Re : Calendrier VBA dynamique (palette de couleur d'évènements)

Banzai, le Fil

Nickel,

Tu assures...
Ci-joint, nouveau fichier réactualisé!
as t'on avis coment peut-on rajouter dans le code du ComboBox2, le code qui va bien pour afficher si selection "janvier", "fevrier" sur le deuxième tableau, "mars" sur le troisième, et effectuer les mêmes recherche et enregistrement...

Peut-être que j'abuse...
Merci beaucoup encore

Cijoint.fr - Service gratuit de dépôt de fichiers
 

Statistiques des forums

Discussions
312 415
Messages
2 088 240
Membres
103 779
dernier inscrit
FrancoisB2