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

Autres calendrier perpétuel sans week-end et mercredi

  • Initiateur de la discussion Initiateur de la discussion ram_ia
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ram_ia

XLDnaute Junior
Bonjour à tous,

Je fais appel au forum pour tenter de m'aider à trouver la manière de créer un calendrier perpétuel sans que les mercredis, les samedis et dimanches apparaissent.
Je n'ai pas trouvé cette particularité dans les autres discussions et sollicite votre aide.
J'ai su trouver pour le week-end et j'avais trouvé cette proposition pour le mercredi en imbriquant une nouvelle condition 🙁 =SI(JOURSEM(A1;2)=5;A1+3;SI(JOURSEM(A1;2)=2;A1+2;A1+1)) sur un autre forum.
Sur ma première ligne (1er jour du mois) tout va bien. C'est à partir de la deuxième ligne que les mercredis réapparaissent.

Je joins le modèle de fichier.

Merci d'avance pour votre aide.
Bien cordialement,
Raymi
 

Pièces jointes

Solution
Oups! J'avais zappé qu'on avaient supprimé les WE. 😡
Donc si le 1er du mois suivant est un WE il est absent et donc la recherche plante.
Dans la PJ, je fais plus "bourrin", je parcours les dates jusqu'à trouver une date supérieure ou égale au 1er du mois suivant. Comme ça je suis sur du coup même si certaines dates sont absentes.
Bonjour Ram_ia,
En B16:
VB:
=SI(JOURSEM(B3;2)=7;B3+1;SI(JOURSEM(B3;2)=6;B3+2;SI(JOURSEM(B3;2)=3;B3+1;B3)))
En B17:B38 :
Code:
=SI(JOURSEM(B16;2)>=5;B16+3;SI(JOURSEM(B16;2)=2;B16+2;B16+1))
Ne liste que les lundi,mardi,jeudi et vendredi.
 

Pièces jointes

Bonjour à tous,

Il y a aussi la fonction serie.jour.ouvre.intl()

VB:
=SERIE.JOUR.OUVRE.INTL(B3;1;"0010011")

Edit: Chgt fichier

JHA
Bonjour Sylvanu,
Tout mes vœux pour démarrer l'année !
Je me permets de revenir sur cette discussion car je cherche à la fois à obtenir un calendrier sans week-end et sans qu'apparaissent les éventuels jours (29, 30 et 31) pour les mois concernés.
Je joins mon modèle au cas où tu pourrais m'apporter, comme d'habitude, la solution à ma demande !
RIA
 

Pièces jointes

Désolé pour l'erreur ... Bonjour JHA 🙂
 
Bonjour,
Un essai en PJ avec cette macro :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A4]) Is Nothing Then
        C = Application.Match(Application.EDate(Target, 1), Rows("2:2"), 0)
        Range("AKC1:BAA1").EntireColumn.Hidden = False
        Range(Cells(1, C), Cells(1, 1200)).EntireColumn.Hidden = True
    End If
End Sub
Elle s'exécute lorsqu'on change la date en A4.
 

Pièces jointes

LA CLASSE INTERNATIONALE !🙂 C'est exactement çà ! Merci une nouvelle fois.
RIA
 
LA CLASSE INTERNATIONALE !🙂 C'est exactement çà ! Merci une nouvelle fois.
RIA
Bonjour Sylvanu,
J'ai cherché à comprendre avant de te soumettre mon nouveau soucis. J'ai du modifier les créneaux horaires, du coup la macro ne fonctionne plus comme avant. Une erreur d'exécution s'affiche !
Je me permets de joindre le modèle tel qu'il sera utilisé en espérant que tu pourras trouver le bug?!
 

Pièces jointes

Bonjour Ram_ia,
Pour masquer les jours je cherche où se trouve le 1er du mois suivant, et je masque à partir de ce jour.
Dans votre modèle il manque des colonnes à la fin pour que sur un mois de 31 jours, il trouve la dernière colonne du 1er du mois suivant, donc le 32ème jour.
En PJ c'est rectifié.
 

Pièces jointes

Merci beaucoup Sylvanu.
Toutefois, sur Avril, septembre et décembre 2022, l'erreur d'exécution'13': incompatibilité de type s'affiche encore. Pourquoi sur ces trois mois précis, comme par exemple sur Septembre, apparaissent justement les jours du mois suivant (Lundi 03 et Mardi 04)
J'ai regardé le script vba et sans pouvoir m'en assurer, j'ai l'impression que le soucis viendrait de Range("GD1:BAA1") , non ?
 
Oups! J'avais zappé qu'on avaient supprimé les WE. 😡
Donc si le 1er du mois suivant est un WE il est absent et donc la recherche plante.
Dans la PJ, je fais plus "bourrin", je parcours les dates jusqu'à trouver une date supérieure ou égale au 1er du mois suivant. Comme ça je suis sur du coup même si certaines dates sont absentes.
 

Pièces jointes

Quelle maîtrise, c'est impressionnant ! Merci encore.
Ram_IA
 
Bonjour Sylvanu,
J'ose une nouvelle demande, toujours en lien avec le sujet. Je souhaite reporter les résultats du tableau suivi des présences vers un autre. Ça je peux le faire. Mais encore une fois c'est le calendrier qui me pose problème. De la même manière, je ne veux pas qu'apparaissent les jours au-delà de la fin du mois (en A13:A35). J'ai tenté d'adapter la macro mais ca ne fonctionne pas ?!
Je joins le modèle pour que ce soit explicite.
 

Pièces jointes

Bonjour Ram_ia,
En PJ avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A3]) Is Nothing Then
        Application.ScreenUpdating = False: Dim L%
        MoisSuivant = Application.EDate(Target, 1)
        For L = 30 To 40
            If Cells(L, "A") >= MoisSuivant Then Exit For
        Next L
        Range("A29:A40").EntireRow.Hidden = False
        Range(Cells(L, "A"), Cells(L + 8, "A")).EntireRow.Hidden = True
        Application.ScreenUpdating = True
    End If
End Sub
qui n'est rien d'autre que la première remaniée de colonnes à lignes.

NB: Si c'est bon, pensez à clore le post en indiquant la bonne PJ. Car avec autant de PJ sur un fil le futur lecteur se demandera laquelle est la bonne. 🙂
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…