[EXCEL] Conservation des formules lors de l'insertion d'une ligne par VBA

Hello la commu'

J'ai un tableau structuré qui hébergeait des formules. Un utilisateur a du manipuler le tableau les formules ont disparu de mes colonnes. Il a du je pense faire un copier/coller (les valeurs) car les valeurs calculées sont présentes mais plus les formules!!!

Mon problème c'est que la macro qui insère des données désormais ne prend plus en compte les formules (malgré le fait que manuellement je les ai de nouveau insérée).

Peut-on forcer dans un tableau structuré une formule et vérifier que celle-ci s'appliquera à l'ensemble de la colonne (et donc aux lignes qui seront insérées)? Car le fait de copier la formule et de l'appliquer à toute une colonne ne me permet pas d'obtenir lors de l'insertion d'une nouvelle ligne la conservation de cette formule.

Par avance merci

Bonjour,

Vu que ta macro sera utilisé pourquoi ne pas lui inclure la formule a l'intérieur avec un truc du genre :

ListObjects("Tableau1").ListColumns("Colonne4").DataBodyRange.Formula = "=SUM(A2:C2)"

Ici on recreer la formule en colonne 4 qui sera la somme des colonnes 1 a 3.

(On peux aussi se passer de cette formule et faire les calculs dans la macro)

Je vais tenter...je n'y ai pas pensé effectivement. Je prends le temps de refaire la macro en incluant DataBodyRange.Formula et je te retourne mon résultat.

Merci

Une petite aide, comment mettrais tu sous VBA cette formule : =CONCATENER(1000+A2;":1")

Sachant que forcément pour chaque nouvelle ligne "n" le A2 devient A"n"

.DataBodyRange.Formula(i, "F") = ???

Alors attention tu controle des formules et non du vba du coup le "n" tu l'oublie.
Si il n'y a pas de "$" $A$2 la formule va suivre l'increment.

Du coup la methode :

fait un tableau et lance l'enregistrement de macro puis met la formule en colonne 2

image

Tu obtient :

.FormulaR1C1 = "=CONCATENATE(1000+RC[-1],"":1"")"

R1C1 c'est le décallage ligne colonne donc on remplace (enfin moi je prefere, je trouves plus lisible)

.Formula = "=CONCATENATE(1000+A2,"":1"")"

Ok vu super, c'est une excellente méthode.

Merci à toi

Rechercher des sujets similaires à "conservation formules lors insertion ligne vba"