OVH Cloud OVH Cloud

[VBA] fonction perso

8 réponses
Avatar
padbra
Bonjour a vous

Pourquoi l'execution de cette function s'arrete ici

Function PERIODE_DESSAI(encours As Date, arrivee As Boolean, dateDarrivee As
Date, embauche As Boolean, dateDembauche As Date, depart As Boolean,
dateDeDepart As Date)

debutDeMois = DateSerial(Year(encours), Month(encours), 1)
finDeMois = DateSerial(Year(encours), Month(encours) + 1, 0)

.....

Avec le message "erreur de compilation, argument non facultatif" en mettant
en surbrillance
debutDeMois=

J'ai bien fait appel a ma fonction en renseignant les 7 arguments et les
types sont respectes (si tant est que 0=faux et que 1=true.

Merci aux contributeurs

PS : les assents sont pas presents, c'est pour embeter Clement ;o)))

8 réponses

Avatar
AV
C'est quoi la variable "encours" ?
La date courante ?

Si oui :
debutDeMois = DateSerial(Year(Date), Month(Date), 1)
finDeMois = DateSerial(Year(Date), Month(Date) + 1, 0)

AV
Avatar
padbra
Nan AV

encours est l'abreviation de moisEnCours (c'est + rapide a ecrire)

c'est le contenu date d'une cellule de mon classeur. Cette cellule est au
format date dans le classeur.

Ca fonctionne d'ailleurs comme ci :


Function finDeMois(encours As Date)

finDeMois = DateSerial(Year(encours), Month(encours) + 1, 0)

End Function



"AV" a écrit dans le message de news:
#
C'est quoi la variable "encours" ?
La date courante ?

Si oui :
debutDeMois = DateSerial(Year(Date), Month(Date), 1)
finDeMois = DateSerial(Year(Date), Month(Date) + 1, 0)

AV




Avatar
AV
Et si tu nous mettais le code complet de la fonction perso ?

AV
Avatar
Daniel.M
Salut,

Dans le code fourni, tu as oublié de mettre les continuateurs de ligne.

Salutations,

Daniel M.

"padbra" wrote in message
news:
Bonjour a vous

Pourquoi l'execution de cette function s'arrete ici

Function PERIODE_DESSAI(encours As Date, arrivee As Boolean, dateDarrivee As
Date, embauche As Boolean, dateDembauche As Date, depart As Boolean,
dateDeDepart As Date)

debutDeMois = DateSerial(Year(encours), Month(encours), 1)
finDeMois = DateSerial(Year(encours), Month(encours) + 1, 0)

.....

Avec le message "erreur de compilation, argument non facultatif" en mettant
en surbrillance
debutDeMois >
J'ai bien fait appel a ma fonction en renseignant les 7 arguments et les
types sont respectes (si tant est que 0úux et que 1=true.

Merci aux contributeurs

PS : les assents sont pas presents, c'est pour embeter Clement ;o)))




Avatar
padbra
Merci daniel pour cette tentative ;o) mais c'est a cause du copy/colly dans
OE

C'est vraiment terrible le VBA, je crois que je vais devenir fou :c(

"Daniel.M" a écrit dans le message de
news:
Salut,

Dans le code fourni, tu as oublié de mettre les continuateurs de ligne.

Salutations,

Daniel M.

"padbra" wrote in message
news:
Bonjour a vous

Pourquoi l'execution de cette function s'arrete ici

Function PERIODE_DESSAI(encours As Date, arrivee As Boolean,
dateDarrivee As


Date, embauche As Boolean, dateDembauche As Date, depart As Boolean,
dateDeDepart As Date)

debutDeMois = DateSerial(Year(encours), Month(encours), 1)
finDeMois = DateSerial(Year(encours), Month(encours) + 1, 0)

.....

Avec le message "erreur de compilation, argument non facultatif" en
mettant


en surbrillance
debutDeMois > >
J'ai bien fait appel a ma fonction en renseignant les 7 arguments et les
types sont respectes (si tant est que 0úux et que 1=true.

Merci aux contributeurs

PS : les assents sont pas presents, c'est pour embeter Clement ;o)))








Avatar
padbra
Tiens Alain,

Function PERIODE_DESSAI(encours As Date, arrivee As Boolean, dateDarrivee As
Date, embauche As Boolean, dateDembauche As Date, depart As Boolean,
dateDeDepart As Date)

debutDeMois = DateSerial(Year(encours), Month(encours), 1)
finDeMois = DateSerial(Year(encours), Month(encours) + 1, 0)

If (depart = False And embauche = False And arrivee = True And
Month(dateDarrivee) = Month(encours) And Year(dateDarrivee) = Year(encours))
Then
If Date < finDeMois Then
PERIODE_DESSAI = Date - dateDarrivee
Else
PERIODE_DESSAI = finDeMois - dateDarrivee
End If

ElseIf (depart = False And arrivee = True And (Month(dateDarrivee) <>
Month(encours) And Year(dateDarrivee) <= Year(encours)) _
Or (Month(dateDarrivee) = Month(encours) And Year(dateDarrivee)
< Year(encours))) Then
If embauche = False Then
If Date < finDeMois Then
PERIODE_DESSAI = Date - debutDeMois
Else
PERIODE_DESSAI = finDeMois - debutDeMois
End If
Else
If Date < dateDembauche Then
PERIODE_DESSAI = Date - debutDeMois
Else
PERIODE_DESSAI = dateDembauche - debutDeMois
End If
End If

ElseIf (depart = True And embauche = False And arrivee = True) Then
If (Month(dateDarrivee) = Month(dateDeDepart) And Year(dateDarrivee)
= Year(dateDeDepart) _
And Month(dateDarrivee) = Month(encours) And Year(dateDarrivee)
= Year(encours)) Then
If Date < dateDeDepart Then
PERIODE_DESSAI = Date - dateDarrivee
Else
PERIODE_DESSAI = dateDeDepart - dateDarrivee
End If
ElseIf (Month(dateDeDepart) = Month(encours) And Year(dateDeDepart)
= Year(encours) _
And Month(dateDarrivee) <> Month(dateDeDepart) And
Year(dateDarrivee) <= Year(dateDeDepart)) Then
If Date < dateDeDepart Then
PERIODE_DESSAI = Date - debutDuMoisEnCours
Else
PERIODE_DESSAI = dateDeDepart - debutDuMoisEnCours
End If
End If

End If

End Function

Je m'en vais m'enfiler un peu de resine de coquelicot en intraveineuse, ca
me calmera
;o)

"AV" a écrit dans le message de news:
uoGIT$
Et si tu nous mettais le code complet de la fonction perso ?

AV




Avatar
padbra
Bon, ca y est, c"est ok, c'est a cause de la fonction

Function finDeMois(encours As Date)

finDeMois = DateSerial(Year(encours), Month(encours) + 1, 0)

End Function


qui fait doublon avec mon 'finDeMois' de PERIODE_DESSAI.

vali vala

merci a vous

PS : vais p-e attendre encore un peu pour l'intraveineuse de resine de
coquelicot

"padbra" a écrit dans le message de news:

Nan AV

encours est l'abreviation de moisEnCours (c'est + rapide a ecrire)

c'est le contenu date d'une cellule de mon classeur. Cette cellule est au
format date dans le classeur.

Ca fonctionne d'ailleurs comme ci :


Function finDeMois(encours As Date)

finDeMois = DateSerial(Year(encours), Month(encours) + 1, 0)

End Function



"AV" a écrit dans le message de news:
#
C'est quoi la variable "encours" ?
La date courante ?

Si oui :
debutDeMois = DateSerial(Year(Date), Month(Date), 1)
finDeMois = DateSerial(Year(Date), Month(Date) + 1, 0)

AV








Avatar
Clément Marcotte
PS : les assents sont pas presents, c'est pour embeter Clement ;o)))


Outils - bloquer l'expéditeur