Automatiser l'ajout d'une formule dans une cellule, créa nouvelle ligne

Bonjour,

Je suis nouveau ici et débutant sur google sheet, je m'excuse par avance pour mon amateurisme sur le sujet :)

J'ai un tableau google sheet avec la formule =IF(E2<>"";E2-A2;"") dans les cellules de la colonne "Processing Time" , voir ci-dessous

image

J'utilise une macro qui me permet d'ajouter une nouvelle ligne automatiquement sur le dessus du tableau, ce qui me donne -> voir ci-dessous

image

Comme on peut voir la nouvelle ligne est bien créé mais avec la cellule "Processing Time" vide, maintenant pour copier la formule de la cellule d'en dessous je dois le faire à la main.

Ma question est donc : est-ce qu'il y a un moyen d'automatiser ça ?

Merci par avance j'espère avoir été assez clair :)

Bonjour,

essaie ceci en F1, je dis bien en première ligne, en effaçant tout ce qu'il y a en dessous

={"Processing Time";ARRAYFORMULA(IF(E2:E<>"";E2:E-A2:A;""))}

Incroyable ça marche merci infiniment je vais la décortiquer maintenant pour comprendre ce qu'il se passe.

Encore une fois merci et pour la rapidité de votre réponse

Bonne Journée :)

un peu d'explications ... cette expression permet d'empiler des données

{___element1____;___element2____;____element3___}

en l'occurrence, on trouvera ici le titre de la colonne au début (élément1), puis une formule en arrayformula

cette formule en fait va se propager sur toute la colonne sans avoir à indiquer la fin de celle-ci (on peut le faire, mais ici ce n'est pas utile)

Merci beaucoup pour le détail du fonctionnement :)

Je viens cependant de rencontrer un petit problème
J'ai donc la formule comme ceci

image

avec E2 en paramètre

Mais quand ma macro rajoute une ligne (en haut du ficher) la formule change et prend E3 en paramètre

image

du coup ça créer un décalage et casse

auriez-vous une idée? :s

Pas de soucis, on va se baser sur la ligne 1 et la décaler

={"Processing Time";ARRAYFORMULA(IF(OFFSET(E1:E;1;0)<>"";OFFSET(E1:E;1;0)-OFFSET(A1:A;1;0);""))}

ou bien

=ARRAYFORMULA(IFERROR(IF(E1:E<>"";E1:E-A1:A;"");"Processing Time"))

là j'utilise l'erreur de calcul pour mettre le titre de la colonne

Le première solution fonctionne très bien mais la deuxième est tellement élégante que je vais l'utiliser :) Merci mille fois

Rechercher des sujets similaires à "automatiser ajout formule crea nouvelle ligne"