Insérer 1 au-dessus / au dessous en gardant une formule dans la colonne

Bonjour à tous,

J'ai créé un tableau de tenu de compte bancaire (A2:L100) avec validation des données et un solde à chaque fin de ligne ("Débits", "Crédits", "Solde") - (=SI(ET(J3="";I3="");"";L2+J3-I3) qui fonctionne très bien mais si je crée une ligne au milieu du tableau (que se soit dessus ou dessous), à la colonne solde (L) je me retrouve avec une cellule vide, alors que les autres cellules qui sont avec la validation des données restent, et donc à chaque fois je dois faire avec la cellule du dessus un glisser/déplacer et ce, jusqu'en bas afin que le solde de chaque ligne soit repris en compte.

Y'a t-il une solution à ce petit souci ?

Merci pour vos réponses.

CDLT

Bonjour,

La solution est simple : Accueil > Mettre sous forme de tableau

La nouvelle ligne hérite automatiquement de la mise en forme et des formules

Dans ce cas, il vaut mieux écrire aussi en "formule structurée" - As-tu un petit extrait de ton fichier ?

Merci pour ta réponse, mais oups j'ai pas précisé Sheets.

Voici un modèle https://docs.google.com/spreadsheets/d/1JLa_woBZ_nEXp08-rszprp8FnDC_OsH4mE4twyQ1zl4/edit#gid=0

CDLT

ok, désolé, je n'avais pas prêté attention à ton profil

il faut écrire ta formule avec ARRAYFORMULA

https://support.google.com/docs/thread/11907000?hl=en


Ton problème par contre est d'avoir une formule différente en L2,

  • Il faut une formule qui teste la ligne ligne()>2 et si elle est supérieure à 2 elle prenne la valeur au-dessus.
  • Autre risque : si tu insères une ligne la formule va se décaler et aller chercher le solde précédent à la ligne plus haut ! il faut aussi inclure dans ce cas une fonction offset ! DECALER(référence_cellule, lignes_décalées, colonnes_décalées, [hauteur], [largeur])

Avec cela la formule fonctionnera en n'ayant dans ses termes que des cellules de la même ligne.

Ce qui te donne une formule en L2 identique avec celles en dessous et sans soucis d'insérer une ligne au-dessus

=IF(AND(J2="";I2="");"";if(ROW()>2;offset(L2;-1;0);0)+J2-I2)

Remarque surtout que je n'ai plus aucune référence à une autre ligne.


Il faut ajouter là-dessus ARRAYFORMULA : regarde ici https://www.sheets-pratique.com/fr/fonctions/arrayformula

Sous excel, je calcule ma trésorerie via un TCD et une formule de cumul.

Si c'est gênant la première cellule L2 il n'y a pas besoin de formule, c'est le solde à la création du compte ?

Par contre j'ai modelé et me fait pareil.

https://docs.google.com/spreadsheets/d/1JLa_woBZ_nEXp08-rszprp8FnDC_OsH4mE4twyQ1zl4/edit#gid=0

Désolé, je suis novice en la matière (aussi bien avec Sheets qu'avec Excel-Pratique) et je viens de m'apercevoir que tu peux de ton côté modifier mon fichier et que j'ai peux être déréglé ce que tu avais fait.

Pas de soucis, mais il faudra que tu te protèges pour éviter qu'un tiers tombe dessus.

Pas de soucis pour L2 ok, mais le but était de parvenir à un solution matricielle qui se répète ensuite. Sauf que j'ai essayé et autant OFFSET admet que l'on appelle sa propre cellule, autant ARRAYFORMULA percute sur la formule. Je vais continuer à investiguer.

ARRAYFORMULA fonctionne trsè bien et simplement, mais ici tu as la difficulté de faire un cumul.

Bilan néanmoins :

  • tu pourrais faire un cumul avec un TCD (c'est possible avec excel mais je n'ai jamais essayé avec sheets
  • sinon tu as ci-dessus une formule qui ne bougera pas si tu tries ou si tu insères des lignes, il suffira de rcopier; tu me diras c'était pareil auparavant, sauf que ici il n'y aura pas de saut de ligne si tu insères
  • mais pour que ce soit répliqué automatiquement, il faut passer par ARRAYFORMULA, j'ai vu que quelqu'un avait soumis cette demande ARRAYFORMULA to sum previous row cell ici https://stackoverrun.com/fr/q/8403516, je vais investiguer

Une solution, un peu complexe car encore une fois on fait à la fois une formule matricielle et un cumul !

en M1

={"cumul Débits";arrayformula(sumif(ROW(A2:A);"<="&ROW(A2:A);I2:I))}

en N1

={"cumul Crédits";arrayformula(sumif(ROW(A2:A);"<="&ROW(A2:A);J2:J))}

en O1

={"Solde";arrayformula(N2:N-M2:M)}

certes il faudrait ne pas afficher le résultat si rien n'est entré en colonne crédit ou débit, à voir ...

une réflexion ...

  • dans google sheet, la reproduction d'une formule nécessite de passer par arrayformula
  • en l'occurrence, j'ai réussi à cumuler les débits et les crédits et en faire la différence
  • quand tu seras à plus de 1000 lignes, tu feras comme moi, il faudra supprimer ces fonctions matricielles de cumul qui seront chronophages (si cela n'avait pas été en cumul ce serait tout à fait supportable) , 2 solutions viables
    • un cumul via un TCD qui a l'avantage de ne pas calculer en permanence
    • ou la formule proposée avec offset, qui se rapproche de ta formule sans le risque de chamboulement dans les cellules référencées dans la fonction, à recopier (facilement) >> c'est ma préconisation !

J'aime bien le TCD qui permet une vision des dépenses de chaque tiers, catégories etc...

L'option avec le solde à chaque fin de ligne permet de voir le solde comme à la banque et plus facile pour faire le rapprochement bancaire.

J'ai regardé le nombre de ligne de mon compte perso de 2019 et j'en suis à 700, l'histoire c'est qu'au 1er janvier 2021 on aura à gérer une trésorerie de 500€ pour 6 Enfants remboursé par note de frais au fur et à mesure et cela avec notre compte perso, si je compte 300 lignes de plus pour cette gestion supplémentaires ça devrait être bon car on est 3 à avoir cette somme pour le même nombre d'Enfants. j'ai remodelé le tableau que tu as formidablement réglé et il me va très bien, j'ai masqué les colonnes que je n'ai pas besoin de voir et c'est parfait ça fonctionne très bien.

Parfait !

Protège le bien alors, et solde ce fil de discussion si pas d'autres questions en cliquant sur V

Super, merci à toi pour ton aide précieuse !

Rechercher des sujets similaires à "inserer dessus dessous gardant formule colonne"