XL 2019 Fonction calendrier - Insérer un mois et une année pour faire apparaitre les dates du mois entier

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 !

Smookie

XLDnaute Nouveau
Bonjour,

Suite à une précédente discussion, un membre du forum m'a réaliser un code VBA pour faire fonctionner mon calendrier automatique.

Je souhaiterai modifier le code afin qu'il affiche tous les 1er du mois (sans compter les week-ends) car j'ai rencontré un problème avec le mois de février en effet le code actuel fait commencé le calendrier à partir 7 (car le 1er tombe sur un mardi) et comme les feuilles d'heures sont au mois la première semaine à sauté, avez-vous une solution s'il vous plait ?

De plus, comme suggérer j'ai ajouté une cellule pour renseigner l'année, est-il possible de lié le code avec l'année ?

Merci infiniment.
 

Pièces jointes

Bonjour Smookie,
Un essai en PJ avec :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$1" Then
        Application.ScreenUpdating = False
        Range("A5:C29").ClearContents
        x = Weekday(CDate("01/" & Target.Value & "/" & [V1])) - 2
        ligne = x + 5   ' Ligne pour le 1er du mois
        x = CDate("01/" & Target.Value & "/" & [V1])
        mois = Month(x) ' Mois demandé
        While Month(x) = mois   ' Tant que mois=mois demandé
             If Month(x) = mois Then
                If Weekday(x) <> 1 And Weekday(x) <> 7 Then
                    Range("A" & ligne) = Format(x, "dddd dd/mm/yyyy")
                    ligne = ligne + 1
                End If
            End If
            x = x + 1
        Wend
    End If
End Sub
 

Pièces jointes

Bonjour Smookie,
Un essai en PJ avec :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$1" Then
        Application.ScreenUpdating = False
        Range("A5:C29").ClearContents
        x = Weekday(CDate("01/" & Target.Value & "/" & [V1])) - 2
        ligne = x + 5   ' Ligne pour le 1er du mois
        x = CDate("01/" & Target.Value & "/" & [V1])
        mois = Month(x) ' Mois demandé
        While Month(x) = mois   ' Tant que mois=mois demandé
             If Month(x) = mois Then
                If Weekday(x) <> 1 And Weekday(x) <> 7 Then
                    Range("A" & ligne) = Format(x, "dddd dd/mm/yyyy")
                    ligne = ligne + 1
                End If
            End If
            x = x + 1
        Wend
    End If
End Sub
Merci pour votre temps, le code fonctionne bien par contre c'est au niveau de la mise en page qui se décale à chaque fois... existe-t-il une solution ? Encore merci.
 
- 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
Retour