Affichage format date

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 !

StrikeBEH

XLDnaute Occasionnel
Bonjour,
J'utilise la boucle:
Code:
Dim i As Integer
Dim j As String
For i = 1 To Day(WorksheetFunction.EoMonth(Date, 0))
If i < 10 Then
    j = "0" & i
    Else
    j = i
End If
Range("B" & i + 6) = j & UCase(Left(Format(i, "ddd"), 1))
Next i

pour afficher dans la colonne "B" les jours que comprend le mois en cours (février en l'occurence) sous la forme "01D", "02L"...

La lettre derrière le chiffre désigne le jour de la semaine.

Y aurait-il un code plus "simple" pour arriver à ce même résultat ?

Par avance merci à tous,
 
Re : Affichage format date

Bonsour® StrikeBEH, Roland_M

😎
en plus compact ...🙄

[Highlight=VB]Sub Macro1()
Dim i As Integer, Ddate As Long, Ddebut As Long, Dfin As Long, PAQ As Long
Dim An As Integer, Dstat As String, Dcolor As Long
An = Year(Date)
PAQ = Evaluate("=DATE(" & An & ",3,29.56+0.979*MOD(204-11*MOD(" & An & ",19),30)- WEEKDAY(DATE(" & An & ",3,28.56+0.979*MOD(204-11*MOD(" & An & ",19),30))))")
Ddebut = DateSerial(An, Month(Date), 1)
Dfin = DateSerial(An, Month(Date) + 1, 0)
Range("B7:C37").ClearContents
i = 1
For Ddate = Ddebut To Dfin
'Range("A" & i + 6) = Ddate
Range("B" & i + 6).Font.Size = 10
Range("B" & i + 6) = Format(Ddate, "dd") & Mid("DLMMJVS", Weekday(Ddate), 1)
Select Case Ddate
Case DateSerial(An, 1, 1) _
, DateSerial(An, 5, 1) _
, DateSerial(An, 5, 8) _
, DateSerial(An, 7, 14) _
, DateSerial(An, 8, 15) _
, DateSerial(An, 11, 1) _
, DateSerial(An, 11, 11) _
, DateSerial(An, 12, 25) _
, PAQ _
, (PAQ + 1) _
, (PAQ + 39) _
, (PAQ + 49) _
, (PAQ + 50)
Range("C" & i + 6) = "JF"
Range("B" & i + 6).Interior.Color = vbRed
Range("C" & i + 6).Interior.Color = vbRed
Case Else
Select Case Weekday(Ddate)
Case Is = 1: Dstat = "CR": Dcolor = RGB(192, 192, 192)
Case Is = 7: Dstat = "CC": Dcolor = RGB(192, 192, 192)
Case Else : Dstat = "JT": Dcolor = xlNone
End Select
Range("C" & i + 6) = Dstat
Range("B" & i + 6).Interior.Color = Dcolor
Range("C" & i + 6).Interior.Color = Dcolor
End Select
i = i + 1
Next Ddate
End Sub[/code]
 
Re : Affichage format date

bien le bonjour à vous,

Salut Staple !
Merci à toi Modeste ! très intéressant !


EDIT:
c'est une très ancienne routine pour les jours fériés, +sieurs années, du temps du QuickBasic 4.5 !
et comme elle fonctionnait bien je l'ai toujours gardée en l'état !
je vais regarder à la tienne et certainement faire mes modif !
encore merci.
 
Dernière édition:
Re : Affichage format date

Bonjour Roland_M, Modeste Geedee, StrikeBEH

Pour le fun:
Une autre version qui tend à verser dans le compact (le calcul de Pâques et donc des JF en moins 😉)
(Si besoin de Pâques, ajouter l’œuf de Modeste dans le caquelon , modifier et tester 😉 )
(testé sur XL13)
Code:
Sub CompactonsCommePourraitDireEELV()
Dim Form$, IntV&
IntV = CLng(Day(DateSerial("2014", Month(Date) + 1, 0)))
Form = "DATE(YEAR(TODAY()),MONTH(TODAY()),ROW()-6)"
    With Range("B7")
        .Resize(IntV, 2).Clear
        With .Resize(IntV, 1)
            .FormulaR1C1 = "=TEXT(" & Form & ",""jj"")&MID(""DLMMJVS"",WEEKDAY(" & Form & "),1)"
            .Value = .Value
        With .Offset(, 1)
            .FormulaR1C1 = "=INDEX({""CC"";""JT"";""JT"";""JT"";""JT"";""JT"";""CR""},WEEKDAY(" & Form & "))"
            .Value = .Value
        End With
        With .Resize(IntV, 2)
            .FormatConditions.Add Type:=2, Formula1:="=GAUCHE($C7)=""C"""
            .FormatConditions(1).Interior.ThemeColor = 3
            .FormatConditions(.FormatConditions.Count).SetFirstPriority
        End With
    End With
End With
End Sub
 
Dernière édition:
Re : Affichage format date

Bonjour et merci à tous pour vos suggestions !
J'ai testé le code de Modeste qui me convient mais celui de Staple s'exécute plus rapidement car pas de boucle, mais ... il manque les jours fériés et comme il se trouve que je travaille aussi les jours fériés !
Comment intégrer cela dans ton code Staple ?

Par avance, merci !!!
 
Re : Affichage format date

Re

Bah j'ai précisé non ?
(Si besoin de Pâques, ajouter l’œuf de Modeste dans le caquelon , modifier et tester 😉 )

Mais peut-être, jeune padawan, en capacité de le faire, encore n'es-tu pas ?

Bon je m'y colle ( t'as de la chance que j'ai la grippe et que je me fous des JO)
 
Re : Affichage format date

Je t'en remercie Staple.
Ce n'est pas par manque de courage que je ne le fais pas moi-même, c'est juste que je ne sais pas comment faire...
A vrai dire, ton code correspond à ce que je souhaite mais je ne comprends pas tout, n'ayant pas les mêmes compétences que vous en VBA... 😉
 
Re : Affichage format date

Bonjour Modeste geedee

Bonsour®
😉 en effet : With range("B7")
Aurai-je "bouletter" ?
Qu'est-ce qu'elle ma range B7?


StrikeBEH

A vrai dire, ton code correspond à ce que je souhaite mais je ne comprends pas tout, n'ayant pas les mêmes compétences que vous en VBA...
Profites que je sois malade pour poser des questions.
J'essaierai d'éclaircir ta lanterne.
 
- 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
15
Affichages
791
Réponses
5
Affichages
915
Réponses
10
Affichages
667
Réponses
2
Affichages
411
  • Question Question
Microsoft 365 format date
Réponses
3
Affichages
233
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
362
Retour