OVH Cloud OVH Cloud

Remplir un calendrier

38 réponses
Avatar
Apitos
Bonjour =E0 tous,

J'aimerais remplir un calendrier avec du code VBA en utilisant les code sui=
vant :

'-----------------
Sub test()
Dim Mois As Integer, Jour As Integer, m As Long
Dim dDate As Date, Ligne As Byte
=20
Ligne =3D 3
For m =3D 1 To 12
dDate =3D Format(DateSerial(Year(Date), Month(Date), 1), "dd/mm/yy"=
)
Mois =3D m
MsgBox "Mois : " & m
Jour =3D 0
=20
With Feuil2
.Range("A1").Value =3D Application.Proper(Format(DateSerial(201=
5, Mois, 1), "mmmm"))
=20
' Efacement de la zone du mois
[modele].Offset(3).ClearContents
=20
=20
For i =3D 3 To 8
For j =3D 1 To 7
Debug.Print "Colonne : " & .Cells(i, j).Column, "Weekda=
y : " & Weekday(dDate, 2)
Debug.Print "Mois : " & Month(DateSerial(2015, Mois, Jo=
ur)), "Mois jour-1 : " & Month(DateSerial(2015, Mois, Jour - 1))
If i =3D 3 And .Cells(i, j).Column < Weekday(dDate, 2) =
Then
Cells(i, j) =3D ""
Else
Jour =3D Jour + 1
If Jour <=3D Day(DateSerial(2015, Mois, 0)) Then
.Cells(i, j) =3D Jour
If Jour =3D 1 Then .Cells(i, j).Font.ColorIndex=
=3D 3
End If
End If
Next j
If j =3D 8 And Application.CountA(.Range(.Cells(i, 1), .Cel=
ls(i, 8))) > 0 Then
.Cells(i, j) =3D ""
.Cells(i, 8) =3D Application.WeekNum(DateSerial(2015, M=
ois, _
Applicati=
on.Min(.Range(.Cells(i, 3), .Cells(i, 8)))))
=20
End If
=20
Next i
If m Mod 2 <> 0 Then
[modele].Copy Feuil1.Range("A" & Ligne)
=20
Else
[modele].Copy Feuil1.Range("J" & Ligne)
Ligne =3D Ligne + 9
End If
End With
Next m
End Sub
'-----------------

Mais malheureusement les mois ne sont pas remplis correctement ainsi que le=
s num=E9ros des semaines !

http://cjoint.com/?ECmwRk7r52n

Merci d'avance.

10 réponses

1 2 3 4
Avatar
DanielCo
Bonjour Isabelle,
Elle est où, ta formule ?
Cordialement.
Daniel


hé ho, y'a plus personne pour vérifier ma formule pour le numéro de semaine
iso ?

isabelle

Le 2015-03-16 14:39, isabelle a écrit :
voilà c'est corrigé

http://cjoint.com/?ECqtXKVjB7N

isabelle
Avatar
Jacquouille
Hello
J'ai testé, mais avec l'année 2015.
Quid pour la fin décembre? Il est en 53° ou déjà sur la première de 2016 ?

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"isabelle" a écrit dans le message de groupe de discussion :
me7h8r$lgc$

hé ho, y'a plus personne pour vérifier ma formule pour le numéro de semaine
iso ?

isabelle

Le 2015-03-16 14:39, isabelle a écrit :
voilà c'est corrigé

http://cjoint.com/?ECqtXKVjB7N

isabelle




---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
isabelle
bonjour Daniel,

elle est dans la macro:

' numéro de semaine iso
D = Int(DateSerial(ans, i, c))
noSem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
noSem = ((D - noSem - 3 + (Weekday(noSem) + 1) Mod 7)) 7 + 1
.Cells(c.Row, 8) = noSem

je l'ai pigé sur le forum,

isabelle

Le 2015-03-17 05:02, DanielCo a écrit :
Bonjour Isabelle,
Elle est où, ta formule ?
Cordialement.
Daniel


hé ho, y'a plus personne pour vérifier ma formule pour le numéro de semaine iso ?

isabelle

Le 2015-03-16 14:39, isabelle a écrit :
voilà c'est corrigé

http://cjoint.com/?ECqtXKVjB7N

isabelle
Avatar
isabelle
Salut Jacques,

la formule utilisé est celle-ci (pigé sur le forum)

' numéro de semaine iso
D = Int(DateSerial(ans, i, c))
noSem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
noSem = ((D - noSem - 3 + (Weekday(noSem) + 1) Mod 7)) 7 + 1
.Cells(c.Row, 8) = noSem

si tu connais la bonne formule, je suis preneuse ;-)

isabelle



Le 2015-03-17 06:14, Jacquouille a écrit :
Hello
J'ai testé, mais avec l'année 2015.
Quid pour la fin décembre? Il est en 53° ou déjà sur la première de 2016 ?

Jacquouille
Avatar
DanielCo
Nickel,
Isabelle.
Daniel
PS. Oui, je sais, la rime est pauvre ;-(((


bonjour Daniel,

elle est dans la macro:

' numéro de semaine iso
D = Int(DateSerial(ans, i, c))
noSem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
noSem = ((D - noSem - 3 + (Weekday(noSem) + 1) Mod 7)) 7 + 1
.Cells(c.Row, 8) = noSem

je l'ai pigé sur le forum,

isabelle

Le 2015-03-17 05:02, DanielCo a écrit :
Bonjour Isabelle,
Elle est où, ta formule ?
Cordialement.
Daniel


hé ho, y'a plus personne pour vérifier ma formule pour le numéro de
semaine iso ?

isabelle

Le 2015-03-16 14:39, isabelle a écrit :
voilà c'est corrigé

http://cjoint.com/?ECqtXKVjB7N

isabelle
Avatar
isabelle
merci! Daniel,
c'est normal s'il y a une 53 ème semaine ?
isabelle

Le 2015-03-17 08:10, DanielCo a écrit :
Nickel,
Isabelle.
Daniel
PS. Oui, je sais, la rime est pauvre ;-(((


bonjour Daniel,

elle est dans la macro:

' numéro de semaine iso
D = Int(DateSerial(ans, i, c))
noSem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
noSem = ((D - noSem - 3 + (Weekday(noSem) + 1) Mod 7)) 7 + 1
.Cells(c.Row, 8) = noSem

je l'ai pigé sur le forum,

isabelle

Le 2015-03-17 05:02, DanielCo a écrit :
Bonjour Isabelle,
Elle est où, ta formule ?
Cordialement.
Daniel


hé ho, y'a plus personne pour vérifier ma formule pour le numéro de semaine
iso ?

isabelle

Le 2015-03-16 14:39, isabelle a écrit :
voilà c'est corrigé

http://cjoint.com/?ECqtXKVjB7N

isabelle
Avatar
Patrick
la bonne n'est elle pas celle du grand Laurent LONGRE sur le site de Misange
?


"isabelle" a écrit dans le message de news:
me95j8$2b6$
Salut Jacques,

la formule utilisé est celle-ci (pigé sur le forum)

' numéro de semaine iso
D = Int(DateSerial(ans, i, c))
noSem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1,
1)
noSem = ((D - noSem - 3 + (Weekday(noSem) + 1) Mod 7)) 7 +
1
.Cells(c.Row, 8) = noSem

si tu connais la bonne formule, je suis preneuse ;-)

isabelle



Le 2015-03-17 06:14, Jacquouille a écrit :
Hello
J'ai testé, mais avec l'année 2015.
Quid pour la fin décembre? Il est en 53° ou déjà sur la première de 2016
?

Jacquouille







---
L'absence de virus dans ce courrier electronique a ete verifiee par le logiciel antivirus Avast.
http://www.avast.com
Avatar
isabelle
bonne idée Patrick, merci!
j'ai ajouté un test avec la formule du grand chef à quatre plumes

http://cjoint.com/?ECroQVEPNz3

isabelle

Le 2015-03-17 08:45, Patrick a écrit :
la bonne n'est elle pas celle du grand Laurent LONGRE sur le site de Misange
?
Avatar
isabelle
c'est désastreux à l'an 1956

1 janvier --> 52
30 décembre --> 52
31 décembre --> 1

les 2 formules (LL et vba) sont erronnées

isabelle

Le 2015-03-17 09:33, isabelle a écrit :
bonne idée Patrick, merci!
j'ai ajouté un test avec la formule du grand chef à quatre plumes

http://cjoint.com/?ECroQVEPNz3

isabelle

Le 2015-03-17 08:45, Patrick a écrit :
la bonne n'est elle pas celle du grand Laurent LONGRE sur le site de Misange
?
Avatar
DanielCo
Tout à fait. 52*764 seulement, donc les premiers jours peuvent tomber
en semaine 52 ou 53 de l'année précédente ou en semaine 53, à la fin de
l'année.
Daniel


merci! Daniel,
c'est normal s'il y a une 53 ème semaine ?
isabelle

Le 2015-03-17 08:10, DanielCo a écrit :
Nickel,
Isabelle.
Daniel
PS. Oui, je sais, la rime est pauvre ;-(((


bonjour Daniel,

elle est dans la macro:

' numéro de semaine iso
D = Int(DateSerial(ans, i, c))
noSem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1,
1)
noSem = ((D - noSem - 3 + (Weekday(noSem) + 1) Mod 7)) 7 +
1
.Cells(c.Row, 8) = noSem

je l'ai pigé sur le forum,

isabelle

Le 2015-03-17 05:02, DanielCo a écrit :
Bonjour Isabelle,
Elle est où, ta formule ?
Cordialement.
Daniel


hé ho, y'a plus personne pour vérifier ma formule pour le numéro de
semaine
iso ?

isabelle

Le 2015-03-16 14:39, isabelle a écrit :
voilà c'est corrigé

http://cjoint.com/?ECqtXKVjB7N

isabelle
1 2 3 4