Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Calendrier qui conserve les données

Axel98

XLDnaute Nouveau
Bonjour,

Je viens à votre rencontre car j'ai un problème sur mon calendrier.

Sur le fichier, ci-joint, vous avez 2 feuilles : Accueil qui reprend les données utile pour mon calendrier qui se situe sur la deuxième feuille. On peut changer l'année du calendrier sur la feuille accueil en modifiant simplement l'année et celui-ci se met à jour.
Sur le calendrier, des boutons permettent de remplir les cases en fonctions de ce que les personnes sont entrain de faire : s'ils sont au bureau, en congé, en déplacement etc.


Ma question est : je construis mon planning pendant l'année. Arrivé en décembre, il a des actions qui vont déborder sur l'année prochaine. Mais si je change d'année les informations reste. Je souhaite qu'en changeant d'année les informations disparaisse. Mais si on revient sur une année déjà complétée les informations soient toujours là.

Est ce que c'est possible ?

Merci pour votre réponse,

Bien à vous,

Axel
 

Pièces jointes

  • Gestion Personnel - (Version_1).xlsm
    70.3 KB · Affichages: 26

Axel98

XLDnaute Nouveau
Merci pour ta reponse .
Justement, je souhaite éviter par soucis de taille du fichier. Surtout que mon fichier initiale possède déjà une bonne série de feuille.

Mais est ce que mon idée est réalisable ou non ?
 

job75

XLDnaute Barbatruc
Bonjour Axel98, mapomme,

Si la disposition des tableaux des mois est immuable on peut mémoriser les valeurs des mois dans des noms définis.

Le code de la feuille "Calendrier" du fichier joint (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Deactivate()
Dim P As Range, i As Byte, nom As Name
Set P = [B4:AE11] 'à adapter éventuellement
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
For i = 1 To 12
    P.SpecialCells(xlCellTypeBlanks) = "=""""" 'texte vide dans les cellules vides (évite les #N/A)
    Set nom = ThisWorkbook.Names.Add("Memo" & Format(P(-1, 0), "yyyy_mm"), P.Value) 'mémorise dans un nom défini
    'nom.Visible = False 'facultatif, masque le nom
    Set P = P.Offset(13) 'mois suivant
Next
End Sub

Private Sub Worksheet_Activate()
Dim P As Range, i As Byte, nom As String
Set P = [B4:AE11] 'à adapter éventuellement
Application.ScreenUpdating = False
For i = 1 To 12
    nom = "Memo" & Format(P(-1, 0), "yyyy_mm")
    If IsArray(Evaluate(nom)) Then P.FormulaArray = "=" & nom Else P = "" 'restitution par formule matricielle
    P = P.Value 'supprime la formule
    Set P = P.Offset(13) 'mois suivant
Next
End Sub
PS : pourquoi vos mois ont au maximum 30 jours ???

A+
 

Pièces jointes

  • Gestion Personnel(1).xlsm
    81 KB · Affichages: 9

job75

XLDnaute Barbatruc
Il faut savoir que la formule d'un nom défini, comme toutes les formules, ne doit pas dépasser 8192 caractères.

A raison de 2 caractères en moyenne par cellule, cela limite le nombre de NOMS à environ 50.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…