[RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pérenne

Gen Rose

XLDnaute Impliqué
Supporter XLD
Bonjour :eek:

J'ai déjà notifié David XLD sur le sujet mais dans l'idée que plusieurs têtes valent mieux qu'une, j'ai pensé à vous tous.

En p.j. le calendrier en question et quelques info sur celui-ci:
Licence:Libre de droits, mentions de l'auteur appréciée
Envoyé le: 01 Jan 2013
Envoyé par: David AUBERT (XLDadmin)
Date: 31 Dec 2012
Auteur: Calendrier2013.net
Taille: 125.50 Kb
Type: xls
Site Web:Click to visit site

J'ai pensé que nous pourrions passer en VBA pour adapter ce calendrier en p.j. et le rendre pérenne.
Avec une feuille 'Choix Annee'; nous pourrions choisir l'année qui ajuste les mois et jours et aussi avoir un bouton pour la synthèse de l'année en cours.

La synthèse pourrait se faire sur une seule feuille à la fin du classeur de façon simple, sans MEF, juste le nécessaire.
Elle pourrait la nommer Synthannéeencours et simplement tout reporter tel l'exemple de la Feuil ‘Synth2012’.

Ce ne sont que des propositions et des idées en l'air.

Mon idée est de le faire partager par un des modérateurs du site dans la zone Téléchargement pour tous car j'ai beaucoup aimé le calendrier de David XLD pour sa simplicité et je crois que cela vaudrait la peine de rendre, si on veut, éternel :rolleyes:

Moment quétaine mis à part, qu'en pensez-vous?
 

Pièces jointes

  • CalendrierPerenne_parmois.xlsm
    56.3 KB · Affichages: 148
Dernière modification par un modérateur:

Herdet

Nous a quitté
Repose en paix
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

Bonjour Le Fil :eek:
Staple, Herdet, Boigontier, Si... ;)

Édition: Après test, ce sont les mêmes commentaires qui restent, peu importe l'année ou le mois...je ne vois pas comment corriger cela... De plus, impossible de voir comment activer la feuille Synthèse, je ne crois pas que le code existe dans le document[/I][/COLOR]
Dans le domaine des lunettes, il y a aussi les Binocles mais sans les branches que l'on appelle des bésicles !

Suite à ta remarque, voir mon message #39 : La feuille Synthèse n'est plus utilisée tout est dans la Sauvegarde

Regarde la pièce jointe 905177

En adaptant la procédure de transfert de Si... ( Agenda Si...xls ) avec les tableaux définis de D_1 à D_6 et L_1 à L_6 tu pourras passer les données saisies du Mois vers la Sauvegarde et inversement Sauvegarde vers Mois pour recharger le mois sélectionné.
Pour la sauvegarde :
1) rechercher les n° année, Mois, Jour dans les colonnes A,B et C de la sauvegarde
2) Si la ligne est trouvée : transférer Evènement, Thème, Couleur cellule, Couleur texte
3) Si la ligne n'est pas trouvée , l'ajouter à la fin avec les infos ci-dessus
4) toujours trier la sauvegarde suivant la colonne D des Dates en ordre croissant

Bonne continuation.
Robert

---------- Classeur de Si... : variables
An =Mois!$G$1
D_1 =Mois!$A$4:$G$4
D_2 =Mois!$A$6:$G$6
D_3 =Mois!$A$8:$G$8
D_4 =Mois!$A$10:$G$10
D_5 =Mois!$A$12:$G$12
D_6 =Mois!$A$14:$G$14
D_te =Mois!$D$1
l_1 =Mois!$A$3:$G$3
L_2 =Mois!$A$5:$G$5
l_3 =Mois!$A$7:$G$7
l_4 =Mois!$A$9:$G$9
l_5 =Mois!$A$11:$G$11
L_6 =Mois!$A$13:$G$13
Mois =Mois!$C$1
---------- Classeur de Si... : procédure de lecture ( t'en inspirer pour copie vers la sauvegarde)

Code:
Private Sub Chgt()
  Dim n As Byte, R As Range, C As Range
  For n = 1 To 6: Range("D_" & n) = "": Next
  With F2
    For Each R In [Synt[Date]]
      If Month(R) = Range("mois") And Year(R) = Range("an") Then
        For n = 1 To 6
          For Each C In Range("l_" & n)
            If C = Day(R) Then
              Application.EnableEvents = 0
              C(2, 1) = R(1, 2)
              Application.EnableEvents = 1
            End If
          Next
        Next
      End If
    Next
  End With
End Sub
 

Pièces jointes

  • Feuille sauvegarde.jpg
    Feuille sauvegarde.jpg
    51.5 KB · Affichages: 94

Si...

XLDnaute Barbatruc
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

Salut

Dans le domaine des lunettes, il y a aussi les Binocles mais sans les branches que l'on appelle des bésicles !

pour un clin d’œil, il y a encore le monocle ;)

Faire tourner les toupies en rond ne présente pas beaucoup de difficultés.
Je n’avais pas inclus la sauvegarde par manque de temps et surtout sans savoir si cette version pouvait intéresser quelqu’un(e).

En voici une* un peu plus finie (mais de l’Alpha à l’Oméga, le chemin est long).

Les nouvelles données sont immédiatement enregistrées à leur saisie ainsi qu’à la sélection du mois ou de l’année (cette fois ci par listes de validation, autre possibilité que celles déjà données pour augmenter les choix de présentation).

Il faudra peut-être ajouter la possibilité d’effacer les indésirables et là encore plusieurs façon de le faire.

* Je n'ai pas ressenti le besoin d'ouvrir un nouveau fil
 

Pièces jointes

  • Agenda Si..2.xlsm
    46 KB · Affichages: 57

Herdet

Nous a quitté
Repose en paix
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

... surtout sans savoir si cette version pouvait intéresser quelqu’un(e).
...ajouter la possibilité d’effacer les indésirables et là encore plusieurs façon de le faire.
Bonjour Si...
et après le monocle...? dans les "exotiques" et peu connus bien sûr ?

... surtout sans savoir si cette version pouvait intéresser quelqu’un(e).
C'est le cas, ce qui prouve encore qu'on ne peut jamais prévoir l'avenir, .. heureusement, ce serait invivable.

...ajouter la possibilité d’effacer les indésirables et là encore plusieurs façons de le faire.
A moins de vouloir conserver l'historique des modifications journalières, je pense qu'il est préférable de purger la Synthèse !

Ceci dit, Geneviève à pas mal de solutions et comme le calendrier semble l' intéresser, je pense que je vais la laisser faire et rester à l'écoute de ses questions pour mener à bien son projet.

Bonne journée
Robert
 

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

Bonjour le Fil :D
Le Forum,

Vous êtes drôles! Alors à moi:
Après le monocle, nous pouvons reculer jusqu'à la pierre de lecture, adoptée dans les monastères dès le moyen-âge.


J'aime beaucoup le dernier document de Si... et je crois qu'il ne manque pas grand chose pour le parfaire.
Après test, crois-tu qu'il serait possible de créer une macro de Mise à jour pour la feuille synthèse(style bouton)?

Cela serait permettrait de couvrir les modifications dans une cellule (pour l'instant, la date se duplique avec la nouvelle info) et aussi les effacement dans une cellule(elles restent en Feuil synthese).

Herdet, je te jure que j'ai bidouillé beaucoup hier dans ton document mais force est d'admettre que je suis au VBA ce qu'un anglais est à la conjugaison en français; sans aucun sens logique.

J'ai tenté d'apdapter la macro de Si... sur ton doc mais visiblement, je n'y arrive pas. Pourtant, je comprends bien les instructions mais je n'arrive pas à les traduire en code.

Une autre chose que j'aime beaucoup du document est l'idée d'inclure les fériés de mon choix mais cela non plus, je ne vois pas comment l'activer par macro. Alors il est possible que la solution soit déjà là mais même si j'ai d'excellents yeux, je crois qu'il faut une lunette à la Spiderwick pour traduire le code en phrase intelligible.

Ceci dit, les 2 docs sont géniaux et uniques; je sais que bien d'autres les aimeront.

Je retourne tenter d'adapter la macro de Si... au document d'Herdet...qui sait, je vais peut-être y arriver?

Une superbe journée à tous!:eek:
 

Herdet

Nous a quitté
Repose en paix
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

Re Herdet,

Voilà où je bloque dans le code de la feuil F2(Synthèse); dépassement de capacité.
Il y a un drôle de problème dans ce code VBA car si l'on modifie une autre feuille PARAM ou SYNTHESE les Sub s'exécutent à tour de rôle sans arrêt à cause du Change et saturent la mémoire.
C'est le gros problème du VBA avec les ActiveX car il exécute tout ce qui porte le nom_Change même si il n'y a qu'une liste qui a été modifiée.

Code:
Private Sub F_CBX_annees_Change()
   [Annee_Num] = F_CBX_annees.ListIndex + 1
   ' actualisation du calendrier suivant les modification d'année ou mois
   Calendrier_Actualisation
   
End Sub

Private Sub F_CBX_mois_Change()
   [Mois_Num] = F_CBX_mois.ListIndex + 1
   ' actualisation du calendrier suivant les modification d'année ou mois
   Calendrier_Actualisation
End Sub

A noter qu'il faut utiliser une seule feuille de sauvegarde donc supprimer la Synthèse.
On peut renommer Sauvegarde en Synthèse si tu y tiens !

Je vais essayer de refaire un classeur propre sinon on ne pourra rien démarrer sur cette solution.

A bientôt
Robert
 

Herdet

Nous a quitté
Repose en paix
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

Bonjour Geneviève,
Bon, pour le classeur propre, c'est fait. ci-joint "G78_Calendrier_V001.xlsm"
Il faut éviter de mettre des listes ActiveX sur les feuilles car le VBA tourne en boucle et utiliser de préférence des listes de type Formulaire.
En fin de compte, j'ai fais aussi la sauvegarde et la lecture avec couleurs de cellules, textes et styles.

Bouton Devel. : affiche toutes les feuilles non protégées
Bouton Utilisateur : masque les feuilles et affiche le calendrier protégé.
Liste H. saisie : modifie les hauteurs de lignes de textes ou les ajuste à la saisie
Listes Mois et Année et la toupie : modification et actualisation du calendrier

Les cellules de saisies du mois, non verrouillées sont modifiables : couleurs de cellules, textes et styles

La relecture de la sauvegarde se fait à partir des références de cellules, c'est plus simple que 2 bouches For...Next pour balayer le calendrier.

NOTA : le VBA calcule les date DD/MM/YYYY à partir du 01/01/1900 tandis que la feuille calcule les dates au format JJ/MM/AAAA à partir du 01/01/1904 ou du 01/01/1900 suivant les Options avancées d'Excel donc c'est le bazard !
Pour pallier ce problème, j'ai mis les dates au format AAAMMJJ dans la sauvegarde.

A terminer :
- transfert des textes saisis en commentaires dans la feuille Synthèse Calendrier

Améliorations possibles :
- bouton qui actualise le calendrier avec le mois et l'année en cours
- utilisation de thèmes et de liste de validations mais c'est un peu contraignant
- ... tu en trouveras bien d'autres

Bon travail
Robert
 

Pièces jointes

  • G78_Calendrier_V001.xlsm
    78.1 KB · Affichages: 40

Si...

XLDnaute Barbatruc
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

Salut

A propos du dernier fichier joint, avec un monocle spécial :

Chercher les 1er.jpg

Pour ton erreur au #50
Cells(Dl, 1) = DateSerial(Sh_Calendrier.[An], Sh_Param.[Mois_Num], R(0, 1)) 'Je bloque ici
R(0,1) étant une date, il serait mieux d’écrire

Cells(Dl, 1) = DateSerial(Sh_Calendrier.[An], Sh_Param.[Mois_Num], Day(R(0, 1)))

comme le réclame la fonction DateSerial(année,mois,jour).

Je continue allègrement mon apprentissage en consultant d’anciennes propositions.
L’une m’a plutôt intéressé (ici merci @+Thierry) et pour la mettre en application j’ai retoqué une de mes versions (look pour l’exotisme et procédures plus précises).
L’utilisation première est plutôt réservée aux débutants qui doivent être "guidés".
Il ne sera pas difficile d’adapter la partie sérieuse à une autre présentation (retour à des listes).

Je n’ai pas compris ce qu’il fallait sauvegarder mais j’ai inclus un formulaire pour avoir plus de détails et de possibilités d’actions.
La feuille Synthèse peut être affichée, masquée par clic double ou droit sur le titre.

Pour la pérennité, il faudra repasser ! Ce même fichier enregistré en xlsm (avec mon 2010) envoie une erreur à l’ouverture avant de fonctionner correctement. Encore une fois, j'ai sauté l'étape fastidieuse des contrôles en tout sens.


corrections pour l'ancien fichier :
dans Sub DeplacementB()
remplacement de 168 par 196

dans Sub DeplacementH()
remplacement de 57 par 58
 

Pièces jointes

  • Agenda1Si...xls
    157.5 KB · Affichages: 42
Dernière édition:

Gen Rose

XLDnaute Impliqué
Supporter XLD
Re : [RÉSOLU + Améliorations en continu] Rendre le calendrier mensuel de David XLD pé

Bonjour Le Fil,

J'aimerais remercier tout le monde pour votre aide, vraiment, j'étais hyper excitée à chaque nouvelle solution! :eek:

Je sentais le besoin de revenir une dernière fois sur ce fil car je ne voulais pas qu'il se termine en queu de poisson.

Je n'ai jamais réussi à corriger les macros (cela dépasse hautement mes compétences, mais j'ai essayé du moins) et par conséquent, plusieurs débuts de solutions se retrouvent dans un cul-de-sac.

Le fichier en #52 très prometteur (je n'arrive pas à trouver comment actualiser la sauvegarde) et en #47, formidable pour sa simplicité (quelque chose ne va pas avec la synthèse):

Tous 2 auraient été parfaits mais en dépit de ne pouvoir les rendre fonctionnels, je post le fichier que je peux utiliser, afin de clore le fil avec une solution pour les débutants comme moi ;)
***Seul Hic; si vous écrivez dans les zones sans dates, il y aura bug; je ne sais comment le corriger.

Encore merci à tous, Boigontier, Si, Herdet et Staple 1600; votre aide et commentaires ont sincèrement été appréciés.

À plus,
xox
 

Pièces jointes

  • Si_CalendrierPerenne_12Mois.xlsm
    77.4 KB · Affichages: 37
  • Si_CalendrierPerenne_12Mois.xlsm
    77.4 KB · Affichages: 44
  • Si_CalendrierPerenne_12Mois.xlsm
    77.4 KB · Affichages: 51

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg