Calendrier : Choisir et afficher les jours non travaillés

leakim

XLDnaute Occasionnel
Bonjour,
Je viens vers vous pour une demande pour du VBA. Je commence à comprendre mais pas capable d'écrire, j'avance dans la formation, mais pas à ce point...
Je joins un fichier qui avance...merci Banzai et CHALET53... auquel j'aimerai ajouter une option afin que les personnes renseignent les jours non travaillés.
Je parviens à le faire avec des formules et des cases à cocher, je suis content, mais dès que je touche à une case la formule est écrasée et la MFC se barre en courant... C'est pourquoi le VBA

Merci à qui voudra bien se pencher sur mon projet.

Cordialement,
Leakim
 

Pièces jointes

  • affiche Jours non travaillés (3) avec les semaines à cheval.xlsm
    72.8 KB · Affichages: 61

eriiic

XLDnaute Barbatruc
Re : Calendrier : Choisir et afficher les jours non travaillés

Bonjour,

à tester...

Par contre sur une suppression on ne peut pas rétablir les JTN puisque la liste n'est stockée nulle part.
Je me demande si tu ne devrais pas supprimer ta boite de dialogue et mettre la liste à cocher sur la feuille (voir E1:E5).
Tu peux cocher par double-clic.
Si tu es ok et que tu n'y arrives pas ça sera pour ce soir pour moi...

Et sur le même sujet je suppose que si tu mets les JTN et qu'il y a CP ou CT dans une cellule il faut conserver. Tu ne l'avais pas dit...

eric
 

Pièces jointes

  • classeur6.xlsm
    63 KB · Affichages: 40
  • classeur6.xlsm
    63 KB · Affichages: 46
  • classeur6.xlsm
    63 KB · Affichages: 43
Dernière édition:

leakim

XLDnaute Occasionnel
Re : Calendrier : Choisir et afficher les jours non travaillés

Bonjour eriiic,
C'est vraiment super.
Je trouve ta proposition est intéressante. Si j'ai bien compris si en E3 (mercredi) j'ai coché alors tous les mercredis se mettent en JNT, si je décoche ils redeviennent vide !?!
Donc si je mets une semaine de CP, que je modifie. La semaine sera alors vierge... Si je décoche et recoche, le mercredi se rétablirait.

Par contre comme te le dis :Et sur le même sujet je suppose que si tu mets les JTN et qu'il y a CP ou CT dans une cellule il faut conserver. Tu ne l'avais pas dit... Tu as raison si les semaines du lundi au samedi de CP et CT sont posées il ne faudrait pas que cela soit changé.

Je veux bien ta proposition, j'essais de mon coté... mais j'étais passé par une combo-box que j'ai récupéré sur ce forum, parce que je ne sais pas faire autrement, à ce jour.

Merci d'avance, à ce soir.

Leakim
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Calendrier : Choisir et afficher les jours non travaillés

Re,

Si j'ai bien compris si en E3 (mercredi) j'ai coché alors tous les mercredis se mettent en JNT, si je décoche ils redeviennent vide !?!
Voilà, j'ai ajouté cette gestion.
Donc si tu coches, les JNT se mettent, sauf sur les CT-CP comme demandé.
Si tu décoches ça redevient vierge.
Par contre si tu avais un REC un mardi et que tu coches mardi, le REC est définitivement perdu car remplacé par le JNT.
Dans ce cas en cas d'erreur, quitter sans enregistrer pour revenir à la situation initiale. Mais bon pas de raison qu'ils changent leurs JNT tous les jours. Je suppose que ça doit être très ponctuel.

Par ailleurs j'ai changé le mode d'affectation des congés :
Je n'écrase plus aucun congés quel qu'il soit. Si la personne désire remplacer des REC par des CT elle doit d'abord supprimer l'existant. Je trouve ça plus logique et plus sécurisant, surtout avec la possibilité de modifier de grandes plages.
Si tu préfères revenir à ce que tu avais c'est rapide de modifier. Tu dis.

A tester donc...
eric
 

Pièces jointes

  • classeur6.xlsm
    61.3 KB · Affichages: 47
  • classeur6.xlsm
    61.3 KB · Affichages: 43
  • classeur6.xlsm
    61.3 KB · Affichages: 44

leakim

XLDnaute Occasionnel
Re : Calendrier : Choisir et afficher les jours non travaillés

Bonsoir et merci à nouveau c'est vraiment super...

Par ailleurs j'ai changé le mode d'affectation des congés :
Je n'écrase plus aucun congés quel qu'il soit. Si la personne désire remplacer des REC par des CT elle doit d'abord supprimer l'existant. Je trouve ça plus logique et plus sécurisant, surtout avec la possibilité de modifier de grandes plages.

Je suis d'accord avec cette sécurité, sauf que si, après avoir coché le ou les JNT je pose une semaine de CP et bien le JNT ne se supprime pas... Alors je voulais le supprimer isolément et là pas possible de supprimer un JNT si il correspond au jour dans la plage JNT.

Tu me dis de te dire... alors voici je pense ma dernière demande.

Cordialement,
Leakim
 
Dernière édition:

leakim

XLDnaute Occasionnel
Re : Calendrier : Choisir et afficher les jours non travaillés

Ok j'ai trouvé... Tu as même mis des commentaires !!!

Je constate que lorsque je génère mon calendrier via la toupie, la macro rame...

Je croyais que :

Application.ScreenUpdating = False

devait y remédier ???


Leakim

C'est OK aussi !!!

Merci beaucoup pour cette réalisation, qui va au delà de mes espérances. Je vais pouvoir en faire des heureux avec cet outil... Merci pour eux aussi :eek:
Cordialement,
Leakim
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Calendrier : Choisir et afficher les jours non travaillés

Bonjour,

J'avais ajouté ça en dernière minute sans tester, désolé.
J'ai remis proprement, si tu veux utiliser cette version.

eric
 

Pièces jointes

  • classeur6.xlsm
    63 KB · Affichages: 52
  • classeur6.xlsm
    63 KB · Affichages: 54
  • classeur6.xlsm
    63 KB · Affichages: 52

leakim

XLDnaute Occasionnel
Re : Calendrier : Choisir et afficher les jours non travaillés

Bonjour c'est le fait de pouvoir inscrire dans la combobox le type de congé?
C'est Top!!!

Je me demandais si ce serait compliqué d'inscrire le numéro de semaine à droite de chaque lundi lorsque le calendrier est généré ?
Est-ce que je dois refaire un post ?

Si tu as d'autre proposition... n'hésites pas!

A me redire, ce que je dois faire pour le n° de semaine.

Cordialement,
Leakim
 

leakim

XLDnaute Occasionnel
Re : Calendrier : Choisir et afficher les jours non travaillés

bonjour, j'ai trouvé sur le forum
Code:
Sub numSEM()

For Ligne = .Range("K" & Cells.Rows.Count).End(xlUp).Row To 1 Step -1
            If .Cells(Ligne, 1) <> "" Then
            .Range("K" & Ligne).Value = NoSemaineISO(Range("A" & Ligne))
           
             
End Sub

Function NoSemaineISO(d As Date) As Integer
    NoSemaineISO = Format(d, "ww", vbMonday, vbFirstFourDays)
End Function

Je ne sais pas si c'est quelque chose d'exploitable à placer dans la table CHOIX à droite de vbmonday

Je continu et en attendant.

Leakim
 

eriiic

XLDnaute Barbatruc
Re : Calendrier : Choisir et afficher les jours non travaillés

Re,

Bonjour c'est le fait de pouvoir inscrire dans la combobox le type de congé?
C'est surtout la correction de :
Je suis d'accord avec cette sécurité, sauf que si, après avoir coché le ou les JNT je pose une semaine de CP et bien le JNT ne se supprime pas... Alors je voulais le supprimer isolément et là pas possible de supprimer un JNT si il correspond au jour dans la plage JNT.

Function NoSemaineISO(d As Date) As Integer
NoSemaineISO = Format(d, "ww", vbMonday, vbFirstFourDays)
End Function

Il faut savoir que cette fonction retourne parfois une valeur erroné.
La prochaine a lieu fin 2019. Je te conseille plutôt :
Code:
Public Function IsoWeekNumber(ByVal d As Date) As Long
    ' philben : [url=http://blog.developpez.com/philben/p11066/vba-access/numero_iso_des_semaines]Numéro ISO des semaines | Philben – Ms Access[/url]
    Dim wd As Long
    wd = Weekday(d, vbMonday)
    IsoWeekNumber = Int((d - DateSerial(Year(d - wd + 4), 1, 1) - wd + 11) / 7)
End Function

eric
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 569
dernier inscrit
zeiffel976