Bonjour à tous,
Je reprends le code VBA de quelqu'un d'autre et je suis confronté à un souci .
Une formule est insérée dans une cellule:
Range("E5104").Select 'Juste pour que vous compreniez que la formule est insérée dans une cellule dont la position est relative à "E5104"
ActiveCell.Offset(0, 37).NumberFormat = "General"
ActiveCell.Offset(0, 37).FormulaR1C1 = "=IF(rc8="""","""",concatenate(""sem"",NO.SEMAINE(rc8)-1,""-"",year(rc8)))"
Lorsque la macro s'exécute, le formule est bien insérée mais une erreur #NOM? est affichée dans la cellule.
il suffit simplement de double-cliquer dans la cellule pour lever l'erreur:
Je ne comprends pas pourquoi il y a cette erreur et pourquoi le simple fait de double-cliquer la supprime.
Pourtant le format standard a bien été appliqué avec la bonne instruction, non ?
J'ai même remis cette instruction, en double, après avoir inséré la formule, mais rien n'y fait...
J'ai ensuite pensé que le fait de mettre la formule en LOCAL permettrait de résoudre les choses et j'ai donc "converti" l'instruction de la façon suivante:
ActiveCell.Offset(0, 37).FormulaR1C1Local = "=SI(RC8="""";"""";CONCATENER(""sem"";NO.SEMAINE(RC8)-1;""-"";ANNEE(RC8)))"
C'est encore pire !
La formule n'est même pas insérée dans la cellule qui reste désespérément vide !
Même si ma formule n'est pas bonne, je pensais qu'elle serait tout de même écrite dans la cellule !
Si j'écris:
ActiveCell.Offset(0, 37).Value = "TOTO"
Ça fonctionne, donc ce n'est pas un problème d'adressage de la cellule.
Bref, je patauge et ça fait 3h00 que j'y suis à revoir tous les fondamentaux d'insertion de formules.
Bon après, je ne suis pas Bill Gates, mais je pense que vous l'aurez aisément deviné.
Merci d'avance pour votre aide et vos suggestions.
Bonne après-midi !