OVH Cloud OVH Cloud

I really need help PLIZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZzzz

17 réponses
Avatar
aline
je ne trouve pas l'erreur dans cette fonction
merci bcp bcp de m'aider

Function effectstart(start As Range, jours As Range, holidays As Range)
As Date
Dim r As Range
If WeekDay(Range("start").Value) <> 1 And WeekDay(Range("start").Value)
<> 7 Then
For Each c In Range("holidays")
If Range("start").Value = c.Value Then
Range("r").Formula = "=SERIE.JOUR.OUVRE(" &
Range("start").Address & "," & Range("jours").Value & "," &
Range("holidays").Address & ")"
Exit For
Else
Range("r").Value = Range("start").Value
End If

Next

Else
Range("r").Value = Range("start").Value
End If
effecstart = CDate(Range("r").Value)


End Function

7 réponses

1 2
Avatar
aline
j'essaie de retourner, à partir d'une date depart et d'une plage de
jours fériés (dates aussi),
le premier jour ouvré qui suit la date de depart si celle la est un
jour ferie, un samedi ou un dimanche
sinon retourner la date de depart

comme j'aurai besoin de ce genre de calculs assez souvent j'ai voulu le
faire sous forme de fonction
Avatar
Daniel
Heu... Tu passes un nombre de jours, également. Il te sers à quoi ?
Daniel
"aline" a écrit dans le message de news:

j'essaie de retourner, à partir d'une date depart et d'une plage de
jours fériés (dates aussi),
le premier jour ouvré qui suit la date de depart si celle la est un
jour ferie, un samedi ou un dimanche
sinon retourner la date de depart

comme j'aurai besoin de ce genre de calculs assez souvent j'ai voulu le
faire sous forme de fonction
Avatar
Daniel
"Pounet95" a écrit dans le message de news:

Re,
... visiblement ma réponse n'interesse pas ;o((((


Salut Pounet.
Visiblement, tu ne lis pas les miens non plus. ;-)))
Daniel

Avatar
michdenis
Bonjour Aline,

Ceci fut publié sur ce forum par Frédéric Sigonneau

'-----------------------------
A utiliser ensuite dans une feuille de calcul :
=PlusJOuvres(A1;1)
(ajoute 10 jours ouvrés à une date en A1)

Définis ici la liste des congés fériés annuels de ton
organisation.
dans ce type de syntaxe :
Arr(4) = DateSerial(An, 5, 1)
Tu ne dois pas remplacé An par l'année de ta date.


'-----------------------------
Function PlusJOuvres(D, NbJours)
Dim Dt, i
Dim NbOr, Epacte As Integer
Dim PLune, LPaques, Arr(10) As Long

Dt = CLng(D)
Do
Dt = Dt + 1
'calcul du Lundi de Pâques
NbOr = (An Mod 19) + 1
Epacte = (11 * NbOr - (3 + Int(2 + Int(An / 100)) * 3 / 7)) Mod 30
PLune = DateSerial(An, 4, 19) - ((Epacte + 6) Mod 30)
If Epacte = 24 Then PLune = PLune - 1
If Epacte = 25 And (An >= 1900 And An < 2200) Then PLune = PLune - 1
LPaques = PLune - Weekday(PLune) + vbMonday + 7 'Lundi Paques

'tableau des fériés
Arr(0) = DateSerial(An, 1, 1)
Arr(1) = LPaques
Arr(2) = LPaques + 38 'Ascencion
Arr(3) = LPaques + 49 'Pentecôte
Arr(4) = DateSerial(An, 5, 1)
Arr(5) = DateSerial(An, 5, 8)
Arr(6) = DateSerial(An, 7, 14)
Arr(7) = DateSerial(An, 8, 15)
Arr(8) = DateSerial(An, 11, 1)
Arr(9) = DateSerial(An, 11, 11)
Arr(10) = DateSerial(An, 12, 25)

'ajoute si ouvré
If (IsError(Application.Match(Dt, Arr, 0))) = True And _
(Weekday(Dt, vbMonday) < 6) = True Then
i = i + 1
End If
Loop Until i = NbJours

PlusJOuvres = Dt

End Function



"aline" a écrit dans le message de news:
j'essaie de retourner, à partir d'une date depart et d'une plage de
jours fériés (dates aussi),
le premier jour ouvré qui suit la date de depart si celle la est un
jour ferie, un samedi ou un dimanche
sinon retourner la date de depart

comme j'aurai besoin de ce genre de calculs assez souvent j'ai voulu le
faire sous forme de fonction
Avatar
Pounet95
Bonsoir,

Perdu je lis tout le fil quand je décide de suivre. Hélas, il y a par moment
un temps de réponse très long entre envoi et visualisation sur le forum.
J'utilise OE6 et suis dans le neuf cind où pourtantje devrais être bien
desservi
( FAI = wanadoo )
Et de plus c'était destiné à l'initiaitrice du fil, donc Aline.
Peu importe si ma réponse convient ( je préfère quand même ! ) ou non,
mais le retour est aussi formateur pour celui qui a répondu ( ou essayé ).

A se relire avec plaisir.

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"Daniel" a écrit dans le message de news:
%
"Pounet95" a écrit dans le message de news:

Re,
... visiblement ma réponse n'interesse pas ;o((((


Salut Pounet.
Visiblement, tu ne lis pas les miens non plus. ;-)))
Daniel





Avatar
aline
je passe jours c'est pour lui dire de prendre le premier jour ouvré
suivant
merci bcp pour la fonction que tu m'as envoyée
Avatar
JièL Goubert
Bonjoir© Pounet95

Le 21/12/2005 16:38 vous avez écrit... :
Bonsoir,

Perdu je lis tout le fil quand je décide de suivre. Hélas, il y a par
moment
un temps de réponse très long entre envoi et visualisation sur le forum.
J'utilise OE6 et suis dans le neuf cind où pourtantje devrais être bien
desservi
( FAI = wanadoo )


Essayez de vous connecter directement à la source
News.microsoft.com

Nota : OE6 à la facheuse tendance à se mélanger les pinceaux et "perdre"
des posts !!! C'est un constat et "une" des raisons qui me l'ont fait
abandonner. Solution temporaire quand il y a "trop" de pertes :
supprimer l'abonnement, redémarrer la machine et refaire l'abo...

Autres détails : limiter le nombre de jours de conservation des mails
(Google les gardes tous) et compacter de temps en temps afin de remettre
les index en place.

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr

1 2