est ce que quelqu'un pourrait m'aider =E0 trouver l'erreur dans cette
fonction qui devrait me permettre de renvoyer un jour ouvr=E9 (=E0 partir
d'une date entr=E9e)
meme en definissant la sortie de la fonction comme etant un type
Variant =E7a ne marche pas
Merci bcp
Function effectstart(start As Range, jours As Range, holidays As Range)
As Range
Dim r As Range
If WeekDay(Range("start")) <> 1 And WeekDay(Range("start")) <> 7 Then
For Each c In Range("holidays")
If Range("start").Value =3D c.Value Then
Range("r").Formula =3D "=3DSERIE.JOUR.OUVRE(" &
Range("start").Address & "," & Range("jours").Value & "," &
Range("holidays").Address & ")"
Exit For
Else
Range("r").Value =3D Range("start").Value
End If
Next
Else
Range("r").Value =3D Range("start").Value
End If
Range("effecstart").Value =3D Range("r").Value
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ThierryP
bonjour Aline,
Si tu veux utiliser le nom français de la fonction SERIE.JOUR.OUVRE, il faut mettre range("r").formulalocal
est ce que quelqu'un pourrait m'aider à trouver l'erreur dans cette fonction qui devrait me permettre de renvoyer un jour ouvré (à partir d'une date entrée)
meme en definissant la sortie de la fonction comme etant un type Variant ça ne marche pas Merci bcp
Function effectstart(start As Range, jours As Range, holidays As Range) As Range Dim r As Range If WeekDay(Range("start")) <> 1 And WeekDay(Range("start")) <> 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 Range("effecstart").Value = Range("r").Value
End Function
-- @+ thierryp
bonjour Aline,
Si tu veux utiliser le nom français de la fonction SERIE.JOUR.OUVRE, il
faut mettre range("r").formulalocal
est ce que quelqu'un pourrait m'aider à trouver l'erreur dans cette
fonction qui devrait me permettre de renvoyer un jour ouvré (à partir
d'une date entrée)
meme en definissant la sortie de la fonction comme etant un type
Variant ça ne marche pas
Merci bcp
Function effectstart(start As Range, jours As Range, holidays As Range)
As Range
Dim r As Range
If WeekDay(Range("start")) <> 1 And WeekDay(Range("start")) <> 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
Range("effecstart").Value = Range("r").Value
Si tu veux utiliser le nom français de la fonction SERIE.JOUR.OUVRE, il faut mettre range("r").formulalocal
est ce que quelqu'un pourrait m'aider à trouver l'erreur dans cette fonction qui devrait me permettre de renvoyer un jour ouvré (à partir d'une date entrée)
meme en definissant la sortie de la fonction comme etant un type Variant ça ne marche pas Merci bcp
Function effectstart(start As Range, jours As Range, holidays As Range) As Range Dim r As Range If WeekDay(Range("start")) <> 1 And WeekDay(Range("start")) <> 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 Range("effecstart").Value = Range("r").Value
End Function
-- @+ thierryp
aline
slt thierry malheureusement ça ne marche pas le pb c'est que le prg tourne qd je le mets sous sub mais qd je veux le passer comme fonction il m'affiche #Valeur! dans la cellule
slt thierry malheureusement ça ne marche pas
le pb c'est que le prg tourne qd je le mets sous sub mais qd je veux le
passer comme fonction il m'affiche #Valeur! dans la cellule
slt thierry malheureusement ça ne marche pas le pb c'est que le prg tourne qd je le mets sous sub mais qd je veux le passer comme fonction il m'affiche #Valeur! dans la cellule
Ange Ounis
Ta fonction a plusieurs problèmes.
1- Les paramètres prévus ne correspondent pas à l'utilisation qui en est faite dans le code : ex : paramètre start, déclaré comme Range, utilisé ensuite comme du texte ("start"). Soit tu déclares start comme range, et ensuite tu écris WeekDay(start.Value) soit tu déclares start comme String (chaine de caractères) et ensuite tu écris WeekDay(Range(start).Value) Idem pour jours et holidays
2- Les fonctions de l'utilitaire d'analyse ne sont utilisables en VBA qu'en anglais, et à condition que la référence à ces fonctions soit cochée dans ton projet (en plus de l'être dans Excel).
3- Une fonction ne peut pas écrire quoi que ce soit dans une cellule : par exemple Range("r").Value = Range("start").Value ne provoque pas d'erreur mais est purement et simplement ignoré d'Excel. Une fonction renvoie un résultat dans la cellule (ou les cellules) où elle est écrite. A condition toutefois que tu lui affectes un résultat à renvoyer, ce qui se programme généralement par une dernière instruction dans la fonction qui ressemble à effectstart=leRésultat
4- Tu cherches à écrire une fonction qui peut renvoyer plusieurs résultats (en fonction du nombre de cellules de la plage "holidays". C'est possible (il faut alors valider la fonction de manière matricielle) mais il faut dans ce cas particulier que les résultats à renvoyer soient stockés dans un tableau déclaré en Variant et que ce tableau soit au final affecté à la fonction comme résultat à renvoyer.
Bref, tu t'es lancée dans une entreprise ambitieuse. Bon courage.
---------- Ange Ounis ----------
est ce que quelqu'un pourrait m'aider à trouver l'erreur dans cette fonction qui devrait me permettre de renvoyer un jour ouvré (à partir d'une date entrée)
meme en definissant la sortie de la fonction comme etant un type Variant ça ne marche pas Merci bcp
Function effectstart(start As Range, jours As Range, holidays As Range) As Range Dim r As Range If WeekDay(Range("start")) <> 1 And WeekDay(Range("start")) <> 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 Range("effecstart").Value = Range("r").Value
End Function
Ta fonction a plusieurs problèmes.
1- Les paramètres prévus ne correspondent pas à l'utilisation qui en est faite
dans le code :
ex : paramètre start, déclaré comme Range, utilisé ensuite comme du texte ("start").
Soit tu déclares start comme range, et ensuite tu écris
WeekDay(start.Value)
soit tu déclares start comme String (chaine de caractères) et ensuite tu écris
WeekDay(Range(start).Value)
Idem pour jours et holidays
2- Les fonctions de l'utilitaire d'analyse ne sont utilisables en VBA qu'en
anglais, et à condition que la référence à ces fonctions soit cochée dans ton
projet (en plus de l'être dans Excel).
3- Une fonction ne peut pas écrire quoi que ce soit dans une cellule :
par exemple
Range("r").Value = Range("start").Value
ne provoque pas d'erreur mais est purement et simplement ignoré d'Excel.
Une fonction renvoie un résultat dans la cellule (ou les cellules) où elle est
écrite. A condition toutefois que tu lui affectes un résultat à renvoyer, ce qui
se programme généralement par une dernière instruction dans la fonction qui
ressemble à
effectstart=leRésultat
4- Tu cherches à écrire une fonction qui peut renvoyer plusieurs résultats (en
fonction du nombre de cellules de la plage "holidays". C'est possible (il faut
alors valider la fonction de manière matricielle) mais il faut dans ce cas
particulier que les résultats à renvoyer soient stockés dans un tableau déclaré
en Variant et que ce tableau soit au final affecté à la fonction comme résultat
à renvoyer.
Bref, tu t'es lancée dans une entreprise ambitieuse. Bon courage.
----------
Ange Ounis
----------
est ce que quelqu'un pourrait m'aider à trouver l'erreur dans cette
fonction qui devrait me permettre de renvoyer un jour ouvré (à partir
d'une date entrée)
meme en definissant la sortie de la fonction comme etant un type
Variant ça ne marche pas
Merci bcp
Function effectstart(start As Range, jours As Range, holidays As Range)
As Range
Dim r As Range
If WeekDay(Range("start")) <> 1 And WeekDay(Range("start")) <> 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
Range("effecstart").Value = Range("r").Value
1- Les paramètres prévus ne correspondent pas à l'utilisation qui en est faite dans le code : ex : paramètre start, déclaré comme Range, utilisé ensuite comme du texte ("start"). Soit tu déclares start comme range, et ensuite tu écris WeekDay(start.Value) soit tu déclares start comme String (chaine de caractères) et ensuite tu écris WeekDay(Range(start).Value) Idem pour jours et holidays
2- Les fonctions de l'utilitaire d'analyse ne sont utilisables en VBA qu'en anglais, et à condition que la référence à ces fonctions soit cochée dans ton projet (en plus de l'être dans Excel).
3- Une fonction ne peut pas écrire quoi que ce soit dans une cellule : par exemple Range("r").Value = Range("start").Value ne provoque pas d'erreur mais est purement et simplement ignoré d'Excel. Une fonction renvoie un résultat dans la cellule (ou les cellules) où elle est écrite. A condition toutefois que tu lui affectes un résultat à renvoyer, ce qui se programme généralement par une dernière instruction dans la fonction qui ressemble à effectstart=leRésultat
4- Tu cherches à écrire une fonction qui peut renvoyer plusieurs résultats (en fonction du nombre de cellules de la plage "holidays". C'est possible (il faut alors valider la fonction de manière matricielle) mais il faut dans ce cas particulier que les résultats à renvoyer soient stockés dans un tableau déclaré en Variant et que ce tableau soit au final affecté à la fonction comme résultat à renvoyer.
Bref, tu t'es lancée dans une entreprise ambitieuse. Bon courage.
---------- Ange Ounis ----------
est ce que quelqu'un pourrait m'aider à trouver l'erreur dans cette fonction qui devrait me permettre de renvoyer un jour ouvré (à partir d'une date entrée)
meme en definissant la sortie de la fonction comme etant un type Variant ça ne marche pas Merci bcp
Function effectstart(start As Range, jours As Range, holidays As Range) As Range Dim r As Range If WeekDay(Range("start")) <> 1 And WeekDay(Range("start")) <> 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 Range("effecstart").Value = Range("r").Value