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

10 réponses

1 2
Avatar
Daniel
Bonjour.
Sans en être sûr, je dirais que tu ne peux pas mettre une formule dans une
variable de type "range" non initialisée.
Cordialement.
Daniel
"aline" a écrit dans le message de news:

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



Avatar
Daniel
De plus, tes variables étant déclarées comme range, tu ne dois pas mettre :
If WeekDay(Range("start").Value) <> 1 And WeekDay(Range("start").Value)
mais :
If WeekDay(start.Value) <> 1 And WeekDay(start.Value)
etc.
Daniel
"aline" a écrit dans le message de news:

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



Avatar
Pounet95
Bonjour,
En ayant survolé la demande, ....

si start est un objet Range passé en paramètre, AMHA l'erreur est dans la
formulation répétée de Range("start").value !
Sans essayer, voilà ce que ça donnerait.
Vérifie au passage que pour les autres Range tu n'es pas dans le même cas.
Exemple Range("r") au lieu de r ( déclaré Range ? )

Si ça a pu faire avancer la chose ?


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

Next

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


End Function

--
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...)

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

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



Avatar
aline
merci daniel je pense comme toi qu'il faut initilise le range puisque
sous sub ça marche mais des que je passe à une fonction ça me
retourne l'erreur #valeur!
mais le pb c'est à quel niveau initiliser le range puisque r est une
var intermediaire
Avatar
aline
merci daniel je pense comme toi qu'il faut initilise le range puisque
sous sub ça marche mais des que je passe à une fonction ça me
retourne l'erreur #valeur!
mais le pb c'est à quel niveau initiliser le range puisque r est une
var intermediaire
Avatar
michdenis
Bonjour Aline,

A )
Une fonction ne retourne une valeur que dans la cellule où
la fonction a été introduite. Tu ne peux utiliser une fonction
pour écrire des "data" dans d'autres cellules , ni vouloir formater
quelques cellules que ce soient.

B ) Attention, ta déclaration de tes variables ...
Start as a Range signifie que Start est un objet "Range"
à cet égard, ce n'est pas l'adresse de la cellule que tu passe
mais bien la cellule "l'objet" au complet.
Pounet t'en a fait la remarque.
Ceci s'applique à toutes tes variables "Range"



Salutations!





"aline" a écrit dans le message de news:
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
Avatar
aline
slt mich
merci pour tes eclairages
mais même en changeant range("start").value par start.value (pour tout
le reste aussi) je me trouve confrontée au meêm pb
j'ai justeune question
au fait je definis r comme etant un range et surtout comme etant un
valeur intermediaire (cad non passée en paramètre)
est ce que ceci n'a pas de repercussions?
merci pour l'aide
Avatar
aline
slt mich
merci pour tes eclairages
mais même en changeant range("start").value par start.value (pour tout
le reste aussi) je me trouve confrontée au meêm pb
j'ai justeune question
au fait je definis r comme etant un range et surtout comme etant un
valeur intermediaire (cad non passée en paramètre)
est ce que ceci n'a pas de repercussions?
merci pour l'aide
Avatar
michdenis
Bonjour Aline,

Au lieu de s'acharner sur une fonction qui ne remplit pas tes attentes,
pourquoi ne pas énoncé clairement l'objet de ta problématique.

Qu'est-ce que tu tentes de réaliser ?


Salutations!


"aline" a écrit dans le message de news:
slt mich
merci pour tes eclairages
mais même en changeant range("start").value par start.value (pour tout
le reste aussi) je me trouve confrontée au meêm pb
j'ai justeune question
au fait je definis r comme etant un range et surtout comme etant un
valeur intermediaire (cad non passée en paramètre)
est ce que ceci n'a pas de repercussions?
merci pour l'aide
Avatar
Pounet95
Re,
... visiblement ma réponse n'interesse pas ;o((((
Bon, j'en remets une couche quand même.

AMHA, tous les objets Range puisqu'ils sont déclarés, ne peuvent être
utilisés en écrivant Range("r") par exemple
où alors ce sont des types String.
Donc, au lieu de

If WeekDay(Range("start").Value) <> 1 And WeekDay(Range("start").Value) <> 7

je mettrais

If WeekDay(start) <> 1 And WeekDay(start)< >7

Qu'en penses-tu ?

--
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...)

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

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



1 2