colorer les week ends et jour feriés grâçe à vba?

  • Initiateur de la discussion Initiateur de la discussion macpoy
  • 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 !

M

macpoy

Guest
bonsoir le forum, bonsoir très cher Excelliens,
depuis 15h cet AM, je cherche le moyen de colorer les samedi, dimanche et jours feriés sur la feuille de mon planning, mais autrement que par la mise en forme conditionnelle.
car il arrive parfois que je soi obliger de mettre une couleur ces jours là, et comme tous le monde le sait, c'est la couleur de la MFC qui est "prioritaire"!!!
d'avance un grand merci à qui me trouvera la macro.
bon excel @ +
 

Pièces jointes

bonsoir mesdames et messieurs
Pouvez vous m aider svp a adapter ce code
-Je voudrai juste avoir le choix de l année (N), et ca me creerai un nouveau planning du 1 er jour du mois de decembre de l année N-1 jusqu'au dernier jour du mois de janvier de l'année N+1
et ce a partir de la case G16
-je desirerai egalement que toute la colonne ou il y a un samedi ou dimanche et jours feriés soit grisé
je vous remercie d avance
 
Bonsoir Lolotte, bonsoir à tous,

Vous êtes sûre d'avoir besoin du VBA ?

Sur le site de Jacques BOISGONTIER il y a tout un tas d'exemples adaptés aux planning / calendrier sur présentation par mois / années avec une mise en forme conditionnelle adaptée sur les week-end et les jours fériés.

http://boisgontierjacques.free.fr/
aller dans dates / planning calendrier et charger à droite "calendrier".

Il y a beaucoup d'exemples, pour des recherches de ce type, cela devrait être ok.

++
 
Bonjour à toi aussi zebanx 😉

Retrouvé dans mes productions d'antan
https://www.excel-downloads.com/threads/génération-calendrier.20011626/#post-20087560
Et adapté à la question du jour
VB:
Sub Calendrier()
Dim X&, i&, cal As Range, cell As Range
'le petit plus
ANNEE = InputBox("Choisir l'année du calendrier?", "Calendrier", Year(Date))
FD = CDate("1/12/" & ANNEE - 1): [G16] = FD: [G16:T16].DataSeries 1, 3, 3, 1
For i = 1 To 14
X = Day(DateSerial(Year(Cells(16, i + 6)), Month(Cells(16, i + 6)) + 1, 0))
Cells(16, i + 6).Resize(X).DataSeries 2, 3, 1, 1
Next
Range("G16:T47").FormatConditions.Add Type:=xlExpression, Formula1:="=ET(JOURSEM(G16;2)>5;G16<>"""")"
    Range("G16:T47").FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Range("G16:T47").FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.14996795556505
    End With
Range("G16:T47").FormatConditions(1).StopIfTrue = False
Range("G16:T47").Borders.LineStyle = 1
End Sub
 
bonsoir
oui j avais deja envisagé le calandrier perpetuel avec les mfc mais seulement ca ne convient pas justement a cause des mfc .la couleur des mfc prennent le pas sur la couleur de fond des cellules.
je regarde un peu plus tard si le code fonctionne
merci beaucoup
 
Re

@l0l0tte
A ton avis, penses-tu que je poste du code VBA sans le tester au préalable ? 🙄😀
Surtout que le dit code gît ici dans la poussière depuis 2015 et qu'il fonctionnait déjà à l'époque 🙂

Ma macro du message#7 se borne à faire ce que tu demandes (les jours fériés en moins)
-Je voudrai juste avoir le choix de l année (N), et ca me creerai un nouveau planning du 1 er jour du mois de decembre de l année N-1 jusqu'au dernier jour du mois de janvier de l'année N+1
et ce a partir de la case G16
-je desirerai egalement que toute la colonne ou il y a un samedi ou dimanche soit grisé
 
Re

Et avec cette macro, quel est le taux de satisfaction ?
VB:
Sub Planning()
Dim AA As Date, BB As Date, ANNEE
ANNEE = InputBox("Choisir l'année du calendrier?", "Calendrier", Year(Date))
AA = CDate("1/12/" & ANNEE - 1): BB = CDate("31/1/" & ANNEE + 1)
[G16] = AA:  Range("G16").Resize(, 1 + BB - AA).DataSeries 1, 3, 1, 1
End Sub
 
Re

Je t'ajoute la version avec le format en plus
VB:
Sub Planning_V2()
Dim AA As Date, BB As Date, ANNEE
ANNEE = InputBox("Choisir l'année du calendrier?", "Calendrier", Year(Date))
AA = CDate("1/12/" & ANNEE - 1): BB = CDate("31/1/" & ANNEE + 1)
[G16] = AA:  [G16].NumberFormat = "dddd dd mmmm yyyy": Range("G16").Resize(, 1 + BB - AA).DataSeries 1, 3, 1, 1
Range("G16").Resize(, 1 + BB - AA).Columns.AutoFit
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour