Calendrier de congés

Bonjour à tous,

Dans une feuille de classeur, j'ai un calendrier mensuel interchangeable au niveau de la période de la cellule B3 à AE3

En cellule A4 et A5, j'ai les personnes qui posent congés (cellules en jaune).

Pour Claude du 07/02 au 12/02/2019

Pour Didier du 17/02 au 23/02/2019

Si maintenant, je change le Mois et que je passe au Mois de Mars par exemple. Comment faire pour qu'il efface la couleur pour pouvoir poser d'autres périodes de congés. Et si je reviens sur le Mois de Février, comment faire pour qu'il remette en forme avec les bonnes périodes de dates, la couleur et pour les bonnes personnes ?

Est ce que quelqu'un peut me venir en aide ?

D'avance merci, bien cordialement, Chti59xcel

Bonjour chti59,

Je te suggère de créer un feuille "Archivage" qui, pour chaque collaborateur, mémorisera les dates de congés saisies.

Lors du changement de mois dans la feuille principale, c'est à partir des données mémorisées dans "Archivage" que tu coloreras les cellules.

Du code VBA sera probablement nécessaire.

Bonjour Chtimi, GVIALLES

Tu peux éventuellement utiliser cette application.

Comme le dit Gérard, il faut en effet entretenir une BdD.

C'est un exemple, on peut bien sûr reformater la vue mensuelle pour s'approcher de ce que tu souhaites ! On peut en particulier mettre tout le personnel sur la même page (il faut que je recherche ce que j'ai déjà réalisé dans le cadre de ce forum).

autre exemple

Bonjour et merci pour ce fichier.

Sur le principe, c'est super intéressant, ce modèle répond à ce que je souhaite faire, mais je ne sais pas l'actualiser avec mon classeur.

En fait à la place de la liste (RTT, Maladie, congés, etc.), j'ai une liste de noms de personnes

Je vous joins mob=n classeur dans l'espoir d'un coup de main pour le mettre en forme, mais je vais quand même essayer dele faire de mon côté.

Merci d'avance, cordialement, chti59xcel

Hum, typiquement Chti, j'adore

Attention, pour les contractuels, les droits à congés ne sont pas les mêmes (ancienneté, ducasse, Saint-Eloi…) !!

Michel

ex 59126 / 59223

Les congés sont déclarés où ? dans Récap_Général ?

et comment ? juste par la mise en couleur ?

Bonjour,

Effectivement pour les contractuels, les congés ne sont pas les mêmes

Ensuite tout part dans la feuillle Récap_Général

De mon côté, j'essaye de monter le projet à partir de l'exemple, mais je bloque sur "TabEvenements" ?

Est ce qu'il y a une feuille cachée qui s’appelle "Base_Evenements" ?

Merci

Il est probable que la base de données soit en effet cachée pour alléger le fichier

Je vais regarder de près ton projet demain ...

C'est cool, merci !

Ton fichier est assez complexe, donc je vais zoomer sur les seuls congés et décrivant la méthode ne sachant pas s'il y a des formules et où elles se trouvent !

1ère étape :

difficile de gérer des couleurs !

il vaut mieux que les couleurs soient le résultat d'une mise en forme conditionnelle à partir d'une valeur donnée

je vais donc colorier police et fond en jaune quand la valeur de la cellule est par exemple (choix arbitraire) "_C_"

2ème étape :

créer un onglet "base de données"

ce qui est assez simple ici car on ne trace que les dates de congés

on y mettra donc le nom, la date et c'est tout !

j'ajoute une clé qui est la concaténation de nom et date pour pouvoir effectuer les recherches !

j'ai initialisé avec les données fournies

capture d ecran 375

3ème étape :

faire en sorte que la feuille Récap_Général reprenne les informations de la base de données

on introduira la formule :

=SI(NB.SI(BdD!$C:$C;$B3&"|"&R$2)>0;"_C_";"")

on nommera la plage par exemple PlageDeSaisie

et on protégera cette plage pour qu'elle ne soit pas modifiée par inadvertance !

capture d ecran 376

4ème étape :

écrire les macro qui permettront de mettre à jour la base de données en cas de déclaration de congés ou de suppression de cette déclaration

que je ferai demain

je ne peux pas poursuivre car tes macros sont protégées par mot de passe !

Bonjour

Merci pour le coup de main.

Effectivement les macros sont protégées, voici le code : djrr1965

J'ai parcouru tes différents messages pour essayer de comprendre la procédure.

Pour le moment, je n'ai donné que 5 personnes, mais je suppose que je pourrai étendre le processus à l'ensemble du personnel qui fait environ 80 Agents.

J'ai aussi essayé de mon côté d'avancer avec le fichier exemple fourni et j'ai réussi à trouver la solution pour afficher les feuilles cachées.

Par contre je ne sais pas utiliser les tableaux croisés dynamique, donc je bloque un peu pour continuer en autoformation.

Cordialement, chti59xcel

Voici la macro

Sub planifier()
Dim ici As Range
For Each cel In Selection
    If IsDate(Cells(2, cel.Column)) And Cells(cel.Row, 2) <> "" Then
        With Sheets("BdD").ListObjects(1)
            Set ici = .ListColumns("Nom&Date").Range.Find(what:=Cells(cel.Row, 2) & "|" & Format(Cells(2, cel.Column), "0"), LookIn:=xlValues)
            If ici Is Nothing Then
                .ListRows.Add
                i = .ListColumns("Nom").Range.Find(what:="", SearchDirection:=xlNext).Row
                i = i - .HeaderRowRange.Row
                .ListColumns("Nom").DataBodyRange.Rows(i).Value = Cells(cel.Row, 2)
                .ListColumns("Date").DataBodyRange.Rows(i).Value = Cells(2, cel.Column)
            End If
        End With
    End If
Next cel
End Sub
Sub RAZ()
Dim ici As Range
For Each cel In Selection
    If IsDate(Cells(2, cel.Column)) And Cells(cel.Row, 2) <> "" Then
        With Sheets("BdD").ListObjects(1)
            Set ici = .ListColumns("Nom&Date").Range.Find(what:=Cells(cel.Row, 2) & "|" & Format(Cells(2, cel.Column), "0"), LookIn:=xlValues)
            If Not ici Is Nothing Then
                i = ici.Row
                Sheets("BdD").Rows(i).Delete Shift:=xlUp
            End If
        End With
    End If
Next cel
End Sub

Et voici un fichier reconstitué car j'ai avancé en parallèle sans avoir en effet le mdp.

J'ai aussi reconstitué les formules de dates (pourquoi passer en VBA ?) pour tester le fichier.

Explications de cette 4ème étape :

Pour toutes les cellules de la sélection,

  • je teste si en ligne 2 j'ai bien une date et en colonne 2 un cellule non vide (contenant donc a priori un nom)
  • si ok, je cherche la ligne où je peux trouver le couple nom et date
  • si je le trouve, en suppression j'efface la ligne
  • si je ne le trouve pas, en planification j'ajoute la ligne

La formule permet de supprimer _C_ ou de renvoyer la valeur _C_ et la MFC fait son travail de coloriage.

Hello,

Merci pour tout ce travail, sur le principe, j'ai à peu près le mode de fonctionnement.

Je vais essayer de le reporter dans mon classeur officiel. Par contre il va y avoir un truc sur lequel je vais bloquer, c'est le tableau BdD.

Je ne sais pas comment tu fais pour l'installer dans la feuille ?

Merci, cordialement, chti59xcel

Rechercher des sujets similaires à "calendrier conges"