Référence relative dans une formule

Résolu/Fermé
Pullok - 11 août 2015 à 23:49
 Pullok - 12 août 2015 à 16:29
Bonjour,

Voici ma partie de code qui bloque :

Cells(ligne + 1, 12).Formula = "=IF(RC[-9]<>0;WORKDAY(RC[-9];5);"")"


"ligne" correspond à la dernière ligne remplie et me permet de me repérer dans mon fichier, mais sa valeur n'a pas vraiment d'importance ;

La cellule située en [ligne + 1 ; 3], c'est-à-dire en C quelque chose, contient une date. Sur la même ligne mais 9 cellules plus loin à l'horizontale j'aimerai récupérer cette date, si la case n'est pas vide, et y ajouter 5 jours ouvrables.

Seulement mon code me donne une erreur 1004, ce qui veut dire que j'ai un problème sur l'objet.
Je ne pense pas que ce soit dû à la fonction, qui marche bien quand je la rentre directement dans Excel et je ne vois pas le problème avec l'appel de la cellule par Cells du coup je bloque complètement, pouvez-vous m'aider ?
A voir également:

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié par ThauTheme le 12/08/2015 à 00:17
Bonsoir Pullok, bonsoir le forum,

un proposition en dur :

If IsDate(Cells(ligne + 1, 3)) = True Then Cells(ligne + 1, 12).Value = Format(Application.WorksheetFunction.WorkDay(Cells(ligne + 1, 3), 5), "yyyy/mm/dd")


une autre en formule :
If IsDate(Cells(ligne + 1, 3)) = True Then Cells(ligne + 1, 12).Formula = "=WorkDay(" & Cells(ligne + 1, 3).Address & ", 5)"


À plus,
ThauTheme
0
Merci, mais j'aimerai que le IF soit inclu dans la formule de la cellule pour que la date de la colonne L (colonne 12) se mette à jour quand celle de la C est changée.

Edit 1 :Après test, c'est la fonction IF qui bloque, pas Workday. A priori ce n'est pas l'emboitement des deux qui dérange mais uniquement la fonction, puisqu'elle ne marche même pas seule...

Edit 2 : C'est les guillemets au milieu du IF qui merdouillent, je pense que c'est considéré comme la fin de la formule du coup ca ne veut plus rien dire. Je cherche donc une solution de ce cote la.
0
Problème résolu !

C'est donc les guillemets qui bloquaient. Je les ai enlevés en utilisant ISBLANK pour arriver au même résultat :
Cells(linea + 1, 12).Formula = "=If(ISBLANK(RC[-9]),,Workday(RC[-9],5))"


Par contre si quelqu'un sait comment mettre des guillemets dans une formule, je suis preneur.
0