Bonjour,
Après un petit problème de format de données, je tombe maintenant sur un problème de création de formules.
Ayant pas mal de données à gérer dans le classeur Excel que je dois créer, j'essaie de passer par des plages de cellules, correspondant aux différentes parties clés de la feuille. Ainsi pour un tableau de valeurs, je devrais au final me retrouver avec un plage de données pour les valeurs, et une plage de données pour les totaux.
Le but est donc d'arriver à lier ces deux plages pour que les totaux affichent bien les valeurs de la partie donnée.
Pour commencer simple, j'essaie pour le moment de faire pointer une cellule de la plage des totaux, vers une cellule de la plage des valeurs, et d'y ajouter 1. Ce qui revient à la formule suivante : "=LxCy+1" (x et y dépendant bien sûr de la cellule visée)
J'ai donc tenté le code suivant, qui devrait récupérer l'adresse absolue d'une cellule contenue dans un plage vRange2, implanter cette adresse dans une formule vFormula, puis finalement appliquer cette formule à une cellule contenue dans la plage vRange1 :
Ce qui me renvoi une jolie exception EOleSysError avec le message 'Type de variable incorrect'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Variant vFormula, vRange2, vAddress; vAddress = vRange2.OlePropertyGest("Cells", 1, 5).OlePropertyGet("Address"); vFormula = "="+vAddress+"+1"; vRange1.OlePropertyGet("Cells", 1, 5).OlePropertySet("Formula", vFormula);
Si quelqu'un sait d'où vient l'erreur, et (si possible) comment résoudre le problème, qu'il avance d'un pas
PS : D'ailleurs, vu qu'au final il faudra cibler une colonne/rangée entière de la plage, s'il y'a moyen de garder l'adresse relative à la plage afin que la formule s'adapte facilement aux ajouts de valeurs (insertion de lignes par exemple), je suis aussi preneur![]()
Partager