Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Networkdays

1 réponse
Avatar
khinoa
Bonjour à tous,

J'utilise Excel 2002.

Je voudrais tester le nombre de jours ouvrés entre deux dates, l'une dans la
colonne d et l'autre, celle du jour, dans la cellule N1. Si le nombre de
jours ouvrés est supérieur au nombre contenu dans la cellule M1, insertion
du mot "Rappel" dans la cellule de la colonne H, sinon ne rien afficher.

Range("h" & i) = Evaluate("if(networkdays(d" & i & ",n1)) >
m1,""Rappel"","""")")

cela me renvoie dans la cellule de la colonne H #VALEUR

Avez-vous une explication? Je précise que je ne veux pas insérer dans la
feuille Excel de formule mais uniquement le mot Rappel le cas échéant.

D'avance merci

PS : Cette instruction peut-elle fonctionner avec Excel 97 ou faut-il
installer les macros complémentaires? Pour éviter une installation des
macros complémentaires sur de nombreux postes, comment écrire l'instruction
sans installer les macros complémentaires?

khinoa

1 réponse

Avatar
AV
cela me renvoie dans la cellule de la colonne H #VALEUR
Avez-vous une explication?


Il y a une parenthèse en trop après N1 !
Range("H" & i) = Evaluate("if(networkdays(D" & i & ",N1) >M1,""Rappel"","""")")

PS : Cette instruction peut-elle fonctionner avec Excel 97
ou faut-il installer les macros complémentaires?


Oui ça fonctionne sous XL97 ... sous réserve que tu aies installé la macro comp.
"Utilitaire d'analyse - VBA" si tu veux une réponse par vba ou ""Utilitaire
d'analyse" si tu veux te servir de la fonction dans une feuille de calcul !

Pour éviter une installation des macros complémentaires sur de nombreux postes,
comment écrire l'instruction

sans installer les macros complémentaires?


En n'utilisant aucune fonction issue des macros comp. !
Ca pourrait faire pour ton exemple :
(Attention aux retours à la ligne non souhaités !)
Sur une seule ligne :
Range("h" & i) = Evaluate("if(int((sum(weekday(N1-{0;6})-weekday(D" & i &
"-{1;0}))+5*(N1-D" & i & "))/7)+1>M1,""Rappel"","""")")

AV