OVH Cloud OVH Cloud

comment rendre plus rapide une API

4 réponses
Avatar
aline
Chers Pros,

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?

Merci bcp pour votre aide

4 réponses

Avatar
JB
Bonjour,

Il faudrait connaître la méthode utilisée!

JB
Avatar
aline
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)
Avatar
JB
Il y a des champs nommés sur la feuille (Start,EffectStart,..). Où
sont-ils?

http://www.cjoint.com

JB
Avatar
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