j'ai fait un programme VBA qui permet de generer deux calendriers en
lui rentrant deux dates; le premier calendrier g=E9n=E8re tous les jours
entre les deux dates et le second comprend tous les jours ouvr=E9s selon
une convenion de calcul bien particuli=E8re (=E0 partir d'une grille de
jours f=E9ri=E9s)
le pb que j'ai c'est que pour generer un calendrier sur 10 ans
(journalier) cad par exple pour generer les deux calendriers entre les
dates : 10/10/2005 et 10/10/2015
le syst=E8me met 30 mn a peu pres pour le faire
PS l'Excel que j'utilise est un excel 97
y a t'il moyen de rendre le programme plus speed?
Hello JB voici un morceau du code qui permet de generer le second calendrier cad celui des jours ouvré à partir d'un calendrier (appelé calculationperiod) et ou il y a tous les jours entre deux dates :
With Worksheets("Calendrier") If WeekDay(.Range("start")) <> 1 And WeekDay(.Range("start")) <> 7 Then For Each c In Worksheets("Calendrier").Range("holidaysUS") If .Range("start").Value = c.Value Then .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "1" & "," & .Range("holidaysUS").Address & ")" If Month(Range("effecstart").Value) <> Month(.Range("start").Value) Then .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "-1" & "," & .Range("holidaysUS").Address & ")" End If Exit For Else .Range("effecstart").Value = .Range("start").Value End If
Next
Else .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "1" & "," & .Range("holidaysUS").Address & ")" If Month(.Range("effecstart").Value) <> Month(.Range("start").Value) Then .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "-1" & "," & .Range("holidaysUS").Address & ")" End If End If End With
Merci pour ta precieuse aide (je ne suis pas sure que le code soit lisible mais je voulais juste savoir s'il etait normal que tout ce temps de calcul soit utilisé et si non comment y remedier)
Hello JB voici un morceau du code qui permet de generer le second
calendrier
cad celui des jours ouvré à partir d'un calendrier (appelé
calculationperiod) et ou il y a tous les jours entre deux dates :
With Worksheets("Calendrier")
If WeekDay(.Range("start")) <> 1 And WeekDay(.Range("start")) <> 7
Then
For Each c In Worksheets("Calendrier").Range("holidaysUS")
If .Range("start").Value = c.Value Then
.Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" &
.Range("start").Address & "," & "1" & "," &
.Range("holidaysUS").Address & ")"
If Month(Range("effecstart").Value) <>
Month(.Range("start").Value) Then
.Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" &
.Range("start").Address & "," & "-1" & "," &
.Range("holidaysUS").Address & ")"
End If
Exit For
Else
.Range("effecstart").Value = .Range("start").Value
End If
Next
Else
.Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" &
.Range("start").Address & "," & "1" & "," &
.Range("holidaysUS").Address & ")"
If Month(.Range("effecstart").Value) <>
Month(.Range("start").Value) Then
.Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" &
.Range("start").Address & "," & "-1" & "," &
.Range("holidaysUS").Address & ")"
End If
End If
End With
Merci pour ta precieuse aide (je ne suis pas sure que le code soit
lisible mais je voulais juste savoir s'il etait normal que tout ce
temps de calcul soit utilisé et si non comment y remedier)
Hello JB voici un morceau du code qui permet de generer le second calendrier cad celui des jours ouvré à partir d'un calendrier (appelé calculationperiod) et ou il y a tous les jours entre deux dates :
With Worksheets("Calendrier") If WeekDay(.Range("start")) <> 1 And WeekDay(.Range("start")) <> 7 Then For Each c In Worksheets("Calendrier").Range("holidaysUS") If .Range("start").Value = c.Value Then .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "1" & "," & .Range("holidaysUS").Address & ")" If Month(Range("effecstart").Value) <> Month(.Range("start").Value) Then .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "-1" & "," & .Range("holidaysUS").Address & ")" End If Exit For Else .Range("effecstart").Value = .Range("start").Value End If
Next
Else .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "1" & "," & .Range("holidaysUS").Address & ")" If Month(.Range("effecstart").Value) <> Month(.Range("start").Value) Then .Range("effecstart").Formula = "=SERIE.JOUR.OUVRE(" & .Range("start").Address & "," & "-1" & "," & .Range("holidaysUS").Address & ")" End If End If End With
Merci pour ta precieuse aide (je ne suis pas sure que le code soit lisible mais je voulais juste savoir s'il etait normal que tout ce temps de calcul soit utilisé et si non comment y remedier)
JB
Il y a des champs nommés sur la feuille (Start,EffectStart,..). Où sont-ils?
http://www.cjoint.com
JB
Il y a des champs nommés sur la feuille (Start,EffectStart,..). Où
sont-ils?
Il y a des champs nommés sur la feuille (Start,EffectStart,..). Où sont-ils?
http://www.cjoint.com
JB
aline
désolée de repondre si tardivement mais je n'avais pas un acces internet, les champs start efecstart sont definis dans la feuille calendrier (start c'est la date qu'on rentre à la main) effecstart est par contre calculée par le prg et elle correspond à un jour ouvré si la date start est un jour férié ou un samedi dimanche) merci JB
désolée de repondre si tardivement mais je n'avais pas un acces
internet,
les champs start efecstart sont definis dans la feuille calendrier
(start c'est la date qu'on rentre à la main) effecstart est par contre
calculée par le prg et elle correspond à un jour ouvré si la date
start est un jour férié ou un samedi dimanche)
merci JB
désolée de repondre si tardivement mais je n'avais pas un acces internet, les champs start efecstart sont definis dans la feuille calendrier (start c'est la date qu'on rentre à la main) effecstart est par contre calculée par le prg et elle correspond à un jour ouvré si la date start est un jour férié ou un samedi dimanche) merci JB